За последние 24 часа нас посетили 22748 программистов и 1250 роботов. Сейчас ищут 798 программистов ...

Возврат задания обратно в очередь.

Тема в разделе "Laravel", создана пользователем sowelanes, 30 сен 2018.

Метки:
  1. sowelanes

    sowelanes Активный пользователь

    С нами с:
    11 дек 2014
    Сообщения:
    101
    Симпатии:
    0
    День добрый.
    Есть задание очереди (бд) которое делает запрос через API на создание ордера. Запрос может вернуть новый объект со своим id в случае успеха, либо вернуть ошибку "system overload" в случае сильной загрузки ресурса.
    В таком ситуации нужно вернуть задание в очередь и выполнять его до тех пор пока запрос не вернет новый объект. Есть опциональный параметр --tries и опция retry_after в конфиге, что позволит, скажем, сделать 5 попыток с интервалом 5 секунд, но это при условии, что задание очереди отлетит с каким нибудь исключением. А тут просто ответ от API c сообщением, что система загружена. Как дать очереди понять, что в такой ситуации нужно поместить ее в failed_jobs просто выбросить исключение в случае неудачи?
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Просто поставь новое задание с теми же параметрами :) А можно и исключение кинуть, да.