Глядя на работу ниже, я предполагаю, что задание выполняется на очереди low_priority
.Есть ли в ActiveJob очереди с определенным приоритетом?
class GuestsCleanupJob < ActiveJob::Base
queue_as :low_priority
#....
end
Я согласен с этим, но это только имя очереди правильное? На самом деле это не имеет ничего общего с приоритетом. Например, если я создал задание с очередью с именем :my_queue
, он будет рассматриваться как имеющий тот же приоритет, что и очередь :low_priority
.
Из документации я не смог найти ничего, что указывало бы на то, что я могу назначать приоритеты для заданий, стоящих в очереди. Я знаю, что delayed_jobs имеет эту функцию, но я не нашел ее в active_job.
Да, это имеет смысл, но delayed_job и sidekiq обе очереди поддержки и приоритет, и вы можете установить на уровне рабочих мест. Поддерживает ли активная работа это, если вы используете адаптер delayed_job или sidekiq? Похоже, вы говорите «да» ... но ни одна документация не помогает. Я уже посмотрел ссылки, которые вы добавили, прежде чем публиковать этот вопрос, но я ничего не мог найти ... возможно, я чего-то не хватает? –
Для этого вам необходимо прочитать документацию по вашему адаптеру. ActiveJob - это абстракция. – dimakura
Я понимаю это. Я прочитал документацию - я использую delayed_jobs, и вы можете установить приоритет задания на delayed_job, например 'handle_asynchronously: send_mailer,: priority => 20'. С sidekiq я вижу, что это возможно, поскольку вы устанавливаете очереди и приоритет в файл конфигурации. Записанная работа, похоже, не имеет этого. Мой вопрос заключается в том, как использовать абстракцию, которая является ActiveJob, чтобы установить приоритет ... возможно ли это через ActiveJob или мне нужно использовать delayed_job? Глядя на адаптер delayed_job в ActiveJob, это не кажется возможным. Я не уверен, что еще сказать, чтобы быть более четким. –