Как вы переключаетесь между ShouldQueue и Sync в классе?Переключатель Laravel между Queue, а не Queue
У нас есть конечная точка, которая принимает аргумент, следует ли немедленно или позже уволить работу.
В обоих случаях должна выполняться одна и та же логика, но в одном сценарии я ожидаю ответа и обратно, а другой должен обрабатываться async.
Мне известно о внедрении «ShouldQueue» и использовании «InteractsWithQueue» -Trait, но как мы можем использовать это в одной ситуации и не использовать его в другом?
Можете ли вы программно установить, должен ли запрос быть поставлен в очередь или нет, или есть ли лучшие способы сделать это? Благодаря
не проверял это еще сам, но может вы создаете экземпляр класса задания, и если он должен быть запущен немедленно или «онлайн», а затем просто вызовите метод 'handle()' в вашем контроллере? Если вы хотите запустить его в очереди или «в автономном режиме», вы можете использовать диспетчер для его очереди в обычном режиме. – stratedge
@xjstratedgebx да, это работает, но как мне передать переменную в обоих случаях? В случае диспетчера ожидается, что в конструкторе в ручке будет обработан метод. – hogan
Если вы разрешите класс задания через контейнер службы (т. Е. '$ Job = app (\ App \ Jobs \ MyJob :: class);'), любые классы, которые вы вводите в конструкторе, будут автоматически переданы вам. Если вы вызываете 'handle()' вручную, и для этого требуется передать параметры, просто передайте параметры, когда вы его вызываете. Не нужно беспокоиться об этих параметрах, когда вы его ставите в очередь - я считаю, что контейнер службы будет автоматически вводить параметры при его запуске из очереди. – stratedge