我需要每30秒启动一个游戏,cron作业最小间隔是一分钟,所以我使用队列延迟来做它
public function handle()
{
// Start a new issue
$this->gameService->gameStart();
// Start new issue after 15 seconds
$job = (new \App\Jobs\StartGame)->onQueue('start-game')->delay(30);
dispatch($job);
}
我从控制台开始第一场比赛
public function handle()
{
$job = (new \App\Jobs\StartGame)->onQueue('start-game');
dispatch($job);
}
问题是,我想使用cron job来检查开始游戏队列是否正在运行,如果没有则调度,如果服务器停止维护,是否可能?
答案 0 :(得分:0)
您可以在文件中写入“开始日期”的日志,例如:data_start.log
1-每次调用gameStart()
时,都会检查文件内容(日期),并验证是否在29秒到31秒之间。
2-更新文件内容。
写作的例子:
<?php
$file = "data_start.log";
$f=fopen($file, 'w');
fwrite( $f, date('Y-m-d H:i:s') . "\n");
?>