очередь за горизонтом - PullRequest
0 голосов
/ 27 мая 2018

Мне нужно добавить только одну работу в очередь.Если в очереди есть рабочий, следующее задание должно быть отменено.Мой код: в 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);
}

Но я вижу следующие работы в Horizon.Как решить эту проблему?

1 Ответ

0 голосов
/ 28 мая 2018
$schedule
            ->call(function () {
                if (Queue::size('source') == 0)
                    dispatch(new TestJob())->onQueue('source');
            })
            ->everyMinute();

в планировщике - у меня работает

...