Я понял, что бэкэнд Redis для сельдерея хранит каждый запрос задачи в списке в очереди. Это делает удаление (прерывание) отложенной задачи ужасно неэффективным, поскольку мне приходится повторять все задачи в списке и сравнивать, сопоставляя значение . Я мог бы пакетно удалять задания, но с временными ограничениями до того, как работник подобрал задачу, это не сильно помогло бы.
Таким образом, решение, которое я придумал, заключается в предоставлении уникальной очереди для каждой задачи, такой как число отсчетов («1», «2», «3»). Использование префикса исключено, поскольку код amqp для работника сельдерея не поддерживает сопоставление префиксов или регулярных выражений для имен очередей. . Итак, давайте просто предположим, что я справляюсь с этим с помощью широковещательной или control
функции для динамического переназначения очереди на рабочих.
С какими другими уязвимостями я мог бы потенциально столкнуться при использовании этого подхода? Или есть способ эффективного удаления отложенной задачи?