如何检查队列是否正常工作

时间:2016-08-10 08:48:59

标签: laravel-5.2

我需要每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);
}

我从控制台开始第一场比赛

应用程序/控制台/命令/ StartGame.php

public function handle()
{
    $job = (new \App\Jobs\StartGame)->onQueue('start-game');

    dispatch($job);
}

问题是,我想使用cron job来检查开始游戏队列是否正在运行,如果没有则调度,如果服务器停止维护,是否可能?

1 个答案:

答案 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");

?>