0

我只需要在队列中添加一项作业。如果队列有工作人员,则必须取消下一个作业。我的代码:在 Kernel.php

$schedule->command('source')->withoutOverlapping()->everyMinute();

在指挥

$count = Redis::lrange('queues:source', 0, -1);

if (count($count) == 0)
    dispatch((new \App\Jobs\Source())->onConnection('redis')->onQueue('source'));

在工作

public function handle()
{
    dump('job work');
    sleep(2000);
}

但我在 Horizo​​n 看到了下一份工作。如何解决这个问题?

4

1 回答 1

0
$schedule
            ->call(function () {
                if (Queue::size('source') == 0)
                    dispatch(new TestJob())->onQueue('source');
            })
            ->everyMinute();

在调度程序中 - 它对我有用

于 2018-05-28T10:51:15.373 回答