Если положили и ее же сразу забрали одним и тем же скриптом одномоментно - это странно. Но причем здесь cli или fpm?
Потому что консьюмеры нужно запускать в режиме демона чтобы он постоянно слушал очередь и при поступлении задачи выполнял её, а если вы запускаете скрипт из веба, то веб сервер будет ждать ответ, и если не получит то сам принудительно завершит соединение. Это базовые вещи и я даже не понимаю почему мне приходится это объяснять. Просто откройте документацию к любому серверу очередей и там будет всё расписано.
Автор вопроса не умеет работать с очередями и поэтому пришёл сюда чтобы понять что он делает не так, но вместо того чтобы нормально объяснить ему как делать правильно, вы советуете максимально странные решения
Vitsliputsli, Если вы запускаете задачу прямо из того же места где и ставите эту задачу в очередь, то значит где то в архитектуре приложения вы свернули не туда, потому что в таком случае и сама очередь не нужна, можно выполнить нужный код просто вызвав его напрямую. Просто это даже звучит нелогично.
Vitsliputsli, это шутка такая? Консьюмер не должен выходить из цикла. Работать как демон и ждать задачи бесконечно это его работа.
Очевидно что при таком раскладе его нельзя запускать как fast cgi скрипт. Это нужно делать из cli, и желательно чтобы какая то другая программа менеджер следила за тем чтобы консьюмер перезапускался при падении, например запуская консьюмера через supervisord, через docker с заданием политики рестарта, или тем же кубернетесом
Markusam, полностью соответствует, только есть нюанс с docker pull на серверах, из-за рестарта контейнера у тебя будет downtime, стоит подумать над использованием какого либо оркестратора контейнеров
maksam07, когда нужно дать пользователю возможность вставлять свои js скрипты, например у гугла есть сервис аналитики в котором вы встраиваете js код гугла на свою страницу, а потом в панеле администратора гугла можете встраивать любые js скрипты. У яндекса вроде бы тоже что-то подобное есть. Ну ещё как пример можно взять конструкторы сайтов как тильда, вы там тоже из панели администратора можете встраивать js код
WbICHA, обычно когда js код хранится в базе, это значит что предполагается его последующее редактирование, а минификация при загрузке не позволит его редактировать
Paark, вы можете на сервере положить файл .env и через монтирование (volumes) его прокидывать, т.е. файл будет попадать в контейнер не при сборке, а при запуске
Потому что консьюмеры нужно запускать в режиме демона чтобы он постоянно слушал очередь и при поступлении задачи выполнял её, а если вы запускаете скрипт из веба, то веб сервер будет ждать ответ, и если не получит то сам принудительно завершит соединение. Это базовые вещи и я даже не понимаю почему мне приходится это объяснять. Просто откройте документацию к любому серверу очередей и там будет всё расписано.
Автор вопроса не умеет работать с очередями и поэтому пришёл сюда чтобы понять что он делает не так, но вместо того чтобы нормально объяснить ему как делать правильно, вы советуете максимально странные решения