Как удалить Resque ActiveJob Очередь - PullRequest
1 голос
/ 14 января 2020

Я использую Resque с Redis в качестве бэкенда очереди через ActiveJob. Как очистить все очереди, чтобы предотвратить повторное выполнение заданий.

Из документов я вижу, что могу выполнить

Resque::Job.destroy(queue_name, "Job_CLass_Name")

Так что в моем случае я использую очередь по умолчанию и мой класс Job - NotificationJob, это то, что я делаю с консоли на Heroku:

Resque::Job.destroy("default", "NotificationJob")

, но оно не работает

1 Ответ

0 голосов
/ 14 января 2020

ActiveJob использует класс-оболочку для вашего класса работы. Поэтому для Resque имя класса-оболочки составляет ActiveJob::QueueAdapters::ResqueAdapter::JobWrapper.

. Для имени очереди я посоветую вам проверить доступные очереди, которые вы имеете через Resque.queues. Иногда имя среды добавляется к имени очереди по умолчанию. Так что в вашем случае вы можете попробовать:

Resque.destroy("#{environment_name}_default", "ActiveJob::QueueAdapters::ResqueAdapter::JobWrapper")

Надеюсь, это поможет

...