Как я могу показать запущенные в настоящий момент ActiveJobs в Rails (независимо от адаптера)? - PullRequest
0 голосов
/ 28 июня 2018

Я запустил несколько длительных активных заданий с 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). Я могу сохранить идентификаторы при запуске заданий, но я хотел бы показать состояние всех запущенных заданий без необходимости отслеживать идентификаторы.

...