execute_async Sidekiq Issue
Допустим, у нас есть 100 объектов для отправки в Sidekiq для обработки некоторых данных. Записывается рейк, который запускается каждые 24 часа и выбирает все 100 объектов, для которых столбец sidekiq_processed обработан как false, и отправляет их в очередь Sidekiq для обработки. После того, как Sidekiq обработал данные, столбец sidekiq_processed объекта обновляется как true, чтобы в следующий раз при планировании рейка этот объект не был выбран.
Проблема, с которой я сталкиваюсь, заключается в том, что некоторые объекты после, скажем, 20 дней все еще имеют sidekiq_processed как false. Я также реализовал ведение журнала внутри функции выполнения, чтобы отмечать каждое событие / состояние, в котором находятся мои объекты.
Допустим, осталось 20 объектов, которые не были обработаны. Их журналы были проверены, и журналы этих объектов не были найдены. После запуска new.perform на 21-й день все объекты были окончательно обработаны.
Я не хочу запускать их вручную, есть ли способ проверить, почему Sidekiq не использовал мои объекты очереди.
task :process_some_objects => :environment do
Object.where(sidekiq_processed: false).each do |object|
Worker.perform_async(object.id)
end
end