Я запустил несколько длительных активных заданий с MyJob.perform_later
на rails console
, я не сохранил идентификаторы и закрыл консоль.
Я хочу получить список текущих запущенных идентификаторов заданий, но я не могу найти какой-либо способ сделать это в ActiveJob API. Является ли сохранение идентификатора / задания единственным способом отслеживания задания после его отправки в очередь?
Я использую sidekiq в качестве бэкэнда и могу получить список текущих заданий sidekiq с помощью:
Sidekiq::Workers.new.each { |_p_id, _t_id, work|
puts work['payload']['args'][0]['job_id']
}
Этот код работает и правильно показывает идентификаторы заданий, которые в данный момент выполняются. Но я хочу сделать то же самое, используя ActiveJob API, независимо от того, какой бэкэнд я использую (например, я могу переключиться на отложенную работу без изменения кода).
Они также отображаются как запущенные на веб-панели sidekiq, и я вижу идентификаторы из sidekiq, но не идентификаторы активной работы.
Как я могу сделать то же самое с ActiveJob? Я пытаюсь использовать драгоценный камень статуса активной работы, и мне нужен идентификатор, чтобы использовать AvtiveJob :: Status.get (job_id). Я могу сохранить идентификаторы при запуске заданий, но я хотел бы показать состояние всех запущенных заданий без необходимости отслеживать идентификаторы.