我需要每30秒启动一次游戏,cron任务的最小间隔是一分钟,所以我使用队列延迟来完成
应用程序/作业/StartGame.php
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);
}我通过主机开始第一个游戏
app/Console/Commands/StartGame.php
public function handle()
{
$job = (new \App\Jobs\StartGame)->onQueue('start-game');
dispatch($job);
}问题是,我想使用cron job来检查启动游戏队列是否正在运行,如果没有,那么调度,在服务器停止维护的情况下,这是可能的吗?
发布于 2016-08-10 17:58:13
您可以在文件中写入“开始日期”的日志,例如: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");
?>https://stackoverflow.com/questions/38868442
复制相似问题