Как установить грабли для удаления работника, используя всякий раз, когда гем - PullRequest
2 голосов
/ 19 сентября 2019

У меня есть работник, который удаляет все журналы администратора старше 1 года.Я хочу, чтобы он запускался один раз в день с использованием gem whenever в качестве задачи рейка, однако я не следую всей логике задач рейка.Я пытался следить за этой статьей 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

1 Ответ

3 голосов
/ 19 сентября 2019

Это рабочий, а не грабли, так что вы можете сделать это с

every 24.hours, at: '0:00am' do
 runner 'AdminPanelLogRemoverWorker.perform_async'
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...