Как вы называете (ежедневно) сиделки запланированным работником, не вызывая работника? - PullRequest
0 голосов
/ 17 января 2020

Что-то простое, я уверен, но я искал и не могу найти ответ.

вкратце: я хочу настроить ежедневную рассылку, чтобы ежедневно рассылать списки задач.

У меня есть работник (назначается каждую минуту и ​​только ставит 'для разработчика):

class DailyReminderWorker

    include Sidekiq::Worker
    include Sidetiq::Schedulable

    recurrence do
        hourly.minute_of_hour(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59)
    end

    def perform

        User.find_each do |user|
            @user = user.name
            puts "user name is #{@user}"
            @reminder = Remindarrr.where(user_id: user.id)

            @reminder.each do |r|
                puts r.title
            end

        end
    end 

end

Я знаю, что я могу вызвать это с помощью следующего в контроллере:

DailyReminderWorker.perform_async 

Это работает и выводит каждую минуту, но каждый раз, когда страница обновляется, оно также срабатывает. (менее полезно для ежедневной рассылки.)

Как вы вызываете работника, чтобы поставить в очередь задание без немедленного его запуска? Куда бы вы положили Perfor.asyn c?

Большое спасибо!

1 Ответ

1 голос
/ 17 января 2020

Если вы на платформе Linux, просто используйте cron. очень прост в настройке.

...