我有一个(Laravel)命令。该命令是做卷曲到一个网站,这是某种网站检查。当服务器关闭时,我想回声出来的东西,但它应该只有一次。
我试过这个代码。不起作用。它不断回响。现在我被卡住了。
class Monitoring extends Command {
protected $signature = 'run:monitoring';
private $state;
public function __construct() {
parent::__construct();
$this->state = false;
}
public function handle() {
while (true) {
if (!$this->isMyServerAlive()) {
$this->state = true;
if ($this->state) {
echo 'THE SERVER IS DOWN!!!';
}
} else {
$this->state = false;
}
}
}
private function isMyServerAlive() {
return false; // let's say the server is down
}
}
我知道上面的代码会一直回响。
目标是当isMyServerAlive()
函数从false
返回true并再次返回true时,它将第二次只回响一次,以此类推。
我希望这个信息是明确的。
还有比这更好的解决办法吗?
您可以使用一个可以切换的变量来决定是否响应您的消息。
最初,您希望它是true
,以便在服务器不可用时触发消息。然后将其设置为false
,以防止消息再次触发,直到该值设置回true
。
所以像这样的东西;
private $shouldNotify = true;
public function handle() {
while (true) {
// if the server is unavailable and,
// a notification has not been trigger for this instance
if (!$this->isMyServerAlive() && $this->shouldNotify) {
// echo notification
echo 'The server is down';
// set it so that a notification is not triggered on next loop
$this->shouldNotify = false;
}
// if the server is again available
// set it to trigger a notification when it becomes unavailable again
if ($this->isMyServerAlive()) {
$this->shouldNotify = true;
}
}
}
您最好将此作为一项任务来安排,而不是不断循环。
首先,我不是程序员(只是对PHP有一些了解)。我制作了一个带有事件列表的网站,其中有一个选择字段,每月使用Ajax加载过滤事件。 该代码在大约3个月的时间里运行良好。但5天前,它突然停止工作,开始生成一个无限循环。 我调试了代码,发现问题出在“同时”循环上。我试图理解为什么这在一段时间内是完美的,然后它就不会了。(用无限循环崩溃服务器)。 这个函数只给出下个月的第一天。很好用。 这一个,为选择字段
我创建了这个函数来计算我要测量的距离: 由于我不明白的原因,距离的值只返回一次。因此,如果我在forEach函数中抛出2个位置,并且在循环中使用console.log,我会看到所有的计算都是正确的。但如果我返回距离的值,则只返回一个值。 如何正确返回值? 我使用VueJS,其中'Distance toResponder'是一个计算属性来填充表: 因此函数应该返回每个响应者的距离。那么我需要如何调整
我试图实现每秒循环一次的ScheduledExecutorService线程,但现在它只循环一次。 我的问题是如何设置它,使它周期性地循环,而不是一次迭代? 另外,如何将连接池传递给线程,以便每次迭代都可以查询数据库?任何帮助都非常感谢。
代码:
我在页面上有一个表,我需要从表中的特定单元格中读取值。我想把这些值写到excel文件中。问题是for loop只循环一次,并且只为Excel中的第一个单元格写入值。我试过很多不同的循环,在谷歌上搜索,但都找不到答案。请帮帮忙。下面是我要编写到Excel的代码: 这是我写入excel文件的地方 循环成功执行并从表中正确打印出值,但我需要将这些值写入Excel。似乎在excel中写入第一个值后,for
问题内容: 请看下面的Java 无限循环。它导致其下面的语句的编译时错误。 以下相同的无限循环可正常工作,并且不会发出任何错误,其中我只是用布尔变量替换了条件。 同样在第二种情况下,循环之后的语句显然不可访问,因为布尔变量为true,但编译器根本没有抱怨。为什么? 编辑:显然,以下版本的卡在无限循环中,但是即使循环中的条件始终存在,因此循环下面的语句也不会对该语句下的语句发出任何编译器错误,因此循