簡體   English   中英

如何使用每當 gem 設置刪除工作人員的 rake 任務

[英]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.rbwhenever 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM