Laravel имеет мощную систему очередей, и когда вы используете очереди, вам нужно запускать воркеры. Обычно в production вы используете команду queue:work
для их запуска, они считаются долгоживущими процессами и сохраняют загруженное состояние приложения в памяти. Это означает, что после внесения любых изменений в код вам нужно будет перезапустить их, чтобы у них было свежее состояние.
При локальной разработке это может стать проблемой, в том что вы забудете перезапустить воркеры. Поэтому Laravel предоставляет команду queue:listen
, предназначенную для локальной работы. Она не загружает состояние приложения в памяти, поэтому вам никогда не придется перезапускать очереди при внесении изменений в код.
Итого
queue:work
следует использовать, когда вы хотите, чтобы ваши очереди работали как демон. Это был бы долгоживущий процесс, который был бы полезен, когда производительность является проблемой. Это будет использовать кэшированную версию приложения и не будет перезагружать приложение каждый раз при обработке задания.
queue:listen
следует использовать, когда производительность вас не волнует или вы не хотите перезапускать очередь после внесения изменений в код.
Они оба будут извлекать задания из очереди по одному по мере их получения.
Они оба имеют почти одинаковые параметры, которые можно им передать.