[英]How to set rake task for delete worker using whenever gem
我有工作人員刪除所有超過 1 年的管理日志。 我希望它每天使用gem whenever
作為 rake 任務運行一次,但是我沒有遵循 rake 任務的整個邏輯。 我試圖關注這篇文章https://medium.com/@sampatbadhe/rake-task-invoke-or-execute-419cd689c3bd最大的問題是我應該將我的工人移動到 rake 文件還是我可以直接參考這個工人在哪里的文件?
我的工人在下面:
class AdminPanelLogRemoverWorker
include Sidekiq::Worker
def perform
expired_logs = AdminPanelLog.where('created_at < ?', 1.year.ago).select(:id)
expired_logs.find_in_batches do |logs_batch|
AdminPanelLog.where(id: logs_batch.map(&:id)).delete_all
end
end
end
據我所知,我的schedule.rb
在whenever gem
應該如下所示:
every 24.hours do
rake 'myproject:AdminPanelLogRemoverWorker'
end
這是一個工人,而不是一個 rake 任務,所以你可以用
every 24.hours, at: '0:00am' do
runner 'AdminPanelLogRemoverWorker.perform_async'
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.