如何在 gem 时使用 delete worker 设置 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

据我所知,我在 whenever gem 中的 schedule.rb 应该如下所示:

every 24.hours do
  rake 'myproject:AdminPanelLogRemoverWorker'
end

是worker,不是rake任务,所以可以用

every 24.hours, at: '0:00am' do
 runner 'AdminPanelLogRemoverWorker.perform_async'
end