Я использую Sidekiq для управления заданиями с помощью Rails APP. Я хотел бы знать, как вы получаете аргументы неудачных заданий (идентификаторы, объекты, сообщение об ошибке и т. Д.)? В WebUI все, что вы получаете, это nr неудачных заданий. И если я правильно понимаю, значение по умолчанию заключается в том, чтобы складывать все время, когда данное задание завершилось неудачно. Я развернул мое приложение, и оно работает на нескольких рабочих. Трудно пройти через каждого работника и попытаться выяснить, особенно если у вас есть sidekiq.log, которому много дней.Найти список неудачных заданий Sidekiq с их аргументами
Я ищу ответ здесь и в Интернете. Один из ближайших был описан на следующих ссылках.
How to find failed jobs list in sidekiq?
Это позволяет выяснить, как много неудачных работ у меня в течение определенного периода времени. Тем не менее, я до сих пор не знаю, как узнать, чем закончилась работа и почему.
В принципе, я хотел бы как-то собрать идентификаторы job_ids и периодически проверять, какие из них были неудачными или если есть более простой способ, просто запросите Sidekiq/Redis и посмотрите, какие аргументы и ошибки неудачных заданий.
Я также посетил эту ссылку: Get error message out of Sidekiq job
Вот пример работы я использую
class ClassificationJob < ActiveJob::Base
queue_as :default
def perform(entity)
entity.preprocess!
entity.classify!
end
end
Я попытался изменить к этому
class ClassificationJob < ActiveJob::Base
queue_as :default
def perform(entity)
entity.preprocess!
entity.classify!
store entity_id: entity.id.to_s
entity_id = retrieve :entity_id
end
end
Но плюет следующее сообщение об ошибке:
ArgumentError: You cannot include Sidekiq::Worker in an ActiveJob: ClassificationJob
Спасибо,
Янник
Благодарим вас за ответ. По моему мнению, есть рабочие места, которые потерпели неудачу и будут повторены. В webUI они перечисляются, когда один клик на кнопке «Retries». Другие неудачны (нет способа щелкнуть).Мне кажется, что некоторые из них даже не были повторены (в противном случае потребуется больше времени, чтобы попасть в неудачный список из-за того, что их нужно многократно повторять). Мой особый интерес к этим. Я что-то неправильно интерпретирую здесь? – Yann
«Сбой» - это попытка выполнения задания, которая вызвала ошибку. Задание может быть неудачно N раз, поэтому неудачи нечеткие: это просто счетчик. Вы правы, что если задание отключает повторы, оно является эфемерным и не отображается в пользовательском интерфейсе, кроме как для увеличения сбоев. –
Спасибо за ваши добрые и быстрые ответы Майка. – Yann