2
我有一個config/schedule.yml文件,其中有我的應用程序中的定期作業cron。但我不確定在哪裏/如何初始化該文件?在Resque中,我們用它在resque.rake文件中初始化它。在哪裏初始化schedule.yml文件爲sidekiq調度程序
我有一個config/schedule.yml文件,其中有我的應用程序中的定期作業cron。但我不確定在哪裏/如何初始化該文件?在Resque中,我們用它在resque.rake文件中初始化它。在哪裏初始化schedule.yml文件爲sidekiq調度程序
Sidekiq並非真正用於重複性工作。從sidekiq github wiki page報價:
對於週期性任務,我建議使用發條或當它與您的系統集成的cron來調度任務的寶石。
我還沒有使用sidekiq(但像delayed_job的純淨紅寶石調度像rufus_scheduler其他類似的工具),但與非的cron基礎的工具的一個主要問題是保證重複的作業,將實際執行,只有數量你想要的時間。在一個典型的乘客生產環境中,所有ruby進程都可以輕鬆停止(因此完全不執行)或者二十個進程都嘗試執行相同的工作。
我們很長時間切換到whenever,因爲編寫定期作業很有趣,並且會爲您的系統添加cronjobs來處理所有hassels。
如果你真的想要一個簡單的解決方案,並沒有需要可靠的執行rufus_scheduler是一個選項
請注意cronjobs /在執行時將啓動一個新的軌道ENV,這可以在許多督促系統unafforadble。 – laffuste
如果您使用例如每當亞軍(可直接使用導軌模型),則這是正確的。這種便利當然伴隨着加載軌道環境的開銷(模型如何知道所有圍繞它的東西:)。 一般而言,對於需要更頻繁執行的循環任務,您可以編寫rake任務,甚至可以添加到每次配置時添加的簡單shell腳本。我認爲如果你每小時觸發一次工作超過幾次,cron不是它的地方。對於原來的問題,現在存在一個很好的解決方案,即sidetiq gem。 – Michael