2016-10-30 4 views
1

Есть ли способ получить задание в очереди из ID задания в Laravel? При добавлении задания в очередь я сохраняю идентификатор задания. Позже в какой-то момент времени (задержка для обработки задания в очереди) я хочу удалить задание из очереди. Если я могу получить задание в очереди, используя идентификатор задания, я могу использовать метод delete() для его удаления.Как получить задание в очереди из ID задания в Laravel?

ответ

0

Это очередь, поэтому вы не можете ее выбрать, но если вы регистрируете данные также вне очереди, вы можете посмотреть в Queue :: before() {}, добавленном в AppServiceProvider.php, чтобы проверить сохраненный идентификатор или ссылаться на задания, когда они выходят из очереди и перед обработкой.

Я также работаю над этой областью, поэтому, если я выясню код для этого, и опубликую его, если я это сделаю. Когда вы получаете событие назад в before(), вам нужно развернуть его и получить задание для изучения.

2

Я использую этот код для Laravel 5,5:

use Illuminate\Contracts\Bus\Dispatcher; 

$job = (new JOB_CLASS())->onQueue('QUEUE_NAME')->delay('DELAY'); 
$id = app(Dispatcher::class)->dispatch($job); 
+0

Это единственный путь мат? –

+1

@SantoshAchari Ну честно, я не нашел другого решения, и я думаю, что это самый простой способ сделать это. – Armin