Laravel 5 Laravel JobId如何使用它检查作业是否完成

Laravel 5 Laravel JobId如何使用它检查作业是否完成,laravel-5,lumen,laravel-queue,laravel-jobs,Laravel 5,Lumen,Laravel Queue,Laravel Jobs,我不知道如何检查工作是否完成。我到处寻找,但我没有看到拉威尔/流明有任何工作,我可能错过了一些。示例代码: $job = ((new FooJob($data))); $jobID = dispatch($job); if(is_numeric($jobID)) { while(elapsedTime < 10sec) { CHECK_JOB_SOMEHOW_IF_IS_DONE !?! } } $job=((新的FooJob($data)); $jobID=调度($j

我不知道如何检查工作是否完成。我到处寻找,但我没有看到拉威尔/流明有任何工作,我可能错过了一些。示例代码:

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

if(is_numeric($jobID)) {
  while(elapsedTime < 10sec) {
    CHECK_JOB_SOMEHOW_IF_IS_DONE !?!
  }
}
$job=((新的FooJob($data));
$jobID=调度($job);
如果(是数字($jobID)){
同时(持续时间<10秒){
检查工作是否完成!?!
}
}
我已经安装了一个非常有用的工具,用于保存已完成作业的数据。在那里,我也没有看到任何东西


我有Lumen 5.4框架。

您需要根据文档创建jobs和jobs\u failed表

需要在app/config文件夹中创建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

我提出了以下解决方案:

当作业在Job::Handle结束时完成时,我通过Redis为这个特定作业(设置Redis key“Job:[ID_Job]”val 1)做了一个标记,然后在请求部分,我在弹出时检查Redis key,就是这样。很好用


另一个解决方案是通过lumen/laravel的事件系统来做Redis标记,但对于我想要的,它似乎有点过头了。

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