Как я могу изменить обработку очереди заданий в Laravel?

У меня есть три работы в моей очереди;

  • В
  • С

Число повторов для одного из них установлено на 100.

Когда все мои задания терпят неудачу, Laravel запускает задания по следующей схеме;

  • А 1
  • Б 1
  • С 1

а потом;

  • А 2
  • БИ 2
  • С 2

Я хочу изменить это поведение как следующую схему;

  • A 100 (к ошибочной таблице)
  • Б 1
  • C 0

Поэтому я хочу, чтобы предыдущие задания блокировали тик, они достигают количества повторов и затем переходят к следующей работе.

Как я могу добиться этого с системой Laravel Job?

(Я не могу связать задания на своем программном уровне с помощью метода цепочки. Я хотел бы добиться этого с помощью конфигурации)

2

Решение

Если это задание, вы не можете управлять другим заданием из этого … Задания работают асинхронно. Вы должны сделать вещи синхронно 🙂

Так что или вы все переводите на одну работу, или вы не можете сделать это по-другому 🙂

Конечно, вы можете называть свои очереди, работать с определением их приоритетов и настраивать только 1 работника … Но это не очень хороший вариант, и вы не можете справиться с этим 🙂


Кроме того, вы можете уволить работу после выполнения одной работы. Просто переместите создание задания из вашего контроллера (?) В задание после финиша. Я реализовал это решение в своей системе. Только если одна работа сделана, то следующая стрельба

0

Другие решения

Вы могли бы использовать Работа События контролировать последовательность, в которой они помещаются в очередь. После успешного завершения задания A задание B запускается через прослушиватель событий, то же самое для задания C. Задание A может повторяться 100 раз без возможности запуска задания B.

0

По вопросам рекламы [email protected]