В нашем случае мы помещаем задания в очередь с фиксированными именами очереди (например, app_data_pull, period_data_sync и т. Д.). Каждый сервер в кластере имеет 1 или более рабочих потоков (управляемых супервизором), которые контролируют эти очереди, поэтому в любой момент у нас может быть более 10 мастеров, которые все слушают одну очередь. Кажется, что механизм очереди Laravel пытается синхронизировать и блокировать задания, чтобы предотвратить одновременное получение несколькими потоками одного и того же задания. Но иногда я видел одновременное выполнение одной и той же работы.
Кто-нибудь знает, как (или даже если) работники очереди Artisan обрабатывают синхронизацию? Существуют ли какие-либо конкретные инструкции по обработке сигналов, обеспечивающие упорядоченное выполнение заданий?