Я использую gearman как интерфейс между приложением C ++ и приложением PHP. Моя работа зависит от порядка. С очередью в памяти они выполнялись в том же порядке, в котором они были добавлены (1 работник определенно). Я хочу сохранить свою очередь. Будет ли gearman выполнять задания в постоянной очереди в том же порядке, в котором они были добавлены после сбоя или перезапуска?
это действительно так. Он продолжится там, где остановился, и попытается завершить оставшиеся задания. В зависимости от вашего проекта и очереди … вам может понадобиться добавить failsafes для задания, которое фактически не удалось. В зависимости от того, где ваша работа потерпела крах, она может уже иметь записанные данные (например, в базу данных), но будет повторять попытку, если работа будет перезапущена.
цитата из официального документа
Если сервер заданий дает сбой или перезапускается между этими двумя вызовами для
задание перезагружается при следующем запуске сервера заданий. Когда
сервер заданий запускается, он вызовет функцию обратного вызова в
модуль для предоставления списка всех заданий, которые не были выполнены. Это
используется для заполнения внутренней памяти очереди заданий для запуска. однажды
этот повтор завершен, сервер заданий завершает свою инициализацию
и рабочие места теперь могут выполняться после подключения рабочих (очередь должна
быть в том же состоянии, что и когда он разбился).
Других решений пока нет …