2017-08-22 105 views
0

我有问题如何检查作业是否完成。我到处寻找,但我没有看到Laravel/Lumen有什么合作,我可能会错过一些。示例代码:Laravel JobId如何使用它来检查作业是否完成

$job = ((new FooJob($data))); 
$jobID = dispatch($job); 

if(is_numeric($jobID)) { 
    while(elapsedTime < 10sec) { 
    CHECK_JOB_SOMEHOW_IF_IS_DONE !?! 
    } 
} 

我已经安装了https://github.com/gilbitron/laravel-queue-monitor这实在是帮忙,以节省完成的作业的数据。在那里我也没有看到任何东西。

我有流明5.4框架。

回答

0

我推出这个解决方案:

当工作在工作结束时进行处理::我把槽Redis的一个标志,对于这个特定的工作(设置redis键“job:[ID_JOB]”val 1)并且比请求部分我在弹出时检查Redis键,就是这样。它工作正常。

另一个解决方案是流明/ laravel的槽事件系统,做一个Redis标记,但是对于我想要的,它似乎有点矫枉过正。

0

您将需要根据文档Queues - Lumen创建作业和作业失败表。

将有必要创建queue.php文件应用程序/配置文件夹内,遵循文件模板:

return [ 
    'default' => env('QUEUE_DRIVER', 'sync'), 
    'connections' => [ 
     'sync' => [ 
      'driver' => 'sync', 
     ], 
     'database' => [ 
      'driver' => 'database', 
      'table' => 'jobs', 
      'queue' => 'default', 
      'retry_after' => 60, 
     ], 
    ], 
    'failed' => [ 
     'database' => env('QUEUE_CONNECTION', 'mysql'), 
     'table' => 'jobs_failed', 
    ], ]; 

创建表,使用方法派遣时后信息将被保存在作业表中。

要处理队列中使用命令php artisan queue:work

+0

这实际上不是我有的问题,所有排队的东西都在工作:)这只是一个检查问题。 – xDan

相关问题