簡體   English   中英

Ruby on Rails Cron作業示例

[英]Ruby on Rails Cron Job Example

嗨,對於rails平台來說還是一個新手,你正在尋找一個rails cron作業調度教程。 我已經遍歷了教程的用法,無論何時何地,以及其他計划中的gems,但是我一直在尋找一個核心的ruby實現,它的cron選項卡在軌道上。 先感謝您

Railscasts有一個關於使用Cron的體面教程

編輯

如果您想了解如何從頭開始實施它的示例,您可以看一下如何在這里實現Whenever Gem

要設置cron作業,您可以依賴名為WHENEVER的簡單gem的幫助

它很容易實現。 去吧。

許多人都反對這種方法(請參閱此SO線程 ),但是使用cron作業中的curl / wget觸發應用程序的操作可能是解決周期性任務的快速簡便的解決方案。

你只需記住一些事情:

  • 減少操作的執行時間(因為它會阻止您的應用程序,就像常規的Web請求一樣)
  • 確保您不允許任何人觸發操作(通過使用IP限制,秘密令牌或其他安全措施)

有關此主題的更多信息,我寫了一篇關於它的文章

為了在“core”rails / ruby​​中設置“cron-like”任務的最小化,我創建了https://github.com/Ebbe/arask

無需安裝任何東西(gem除外)或在滑軌之外進行任何設置。

gem 'arask'添加到您的Gemfile中,運行bundle installrails generate arask:installrails db:migrate

現在,您可以在config / initializers / arask.rb文件中設置任務:

arask.create task: 'send:logs', cron: '0 2 * * *' # At 02:00 every day
arask.create script: 'puts "IM ALIVE!"', interval: :daily
arask.create task: 'my:awesome_task', interval: :hourly
arask.create task: 'my:other_awesome_task', interval: 2.hours

如果服務器正在運行,任務將自動運行。

您還可以使用外部免費服務來外包cronjobs http://guardiano.getpeople.in

免責聲明:我做到了

我正在使用rufus-scheduler ,它使用線程來執行調度的函數。 配置非常簡單。 只需3個步驟:

1 - 添加寶石gem 'rufus-scheduler', '~> 3.6'

2-創建文件config/initializers/scheduler.rb

3 - scheduler.rb中的編程時間表:

require 'rufus-scheduler'
s = Rufus::Scheduler.singleton
s.every '5s' do
    #do every 5 seconds exec this code
    puts "WOWWWWWWWWWWWWWWWWWWWW"
end

scheduler.in '2d' do
  # every 2 days exec this
  puts "Now it's me"
end

如有更多疑問: https : //github.com/jmettraux/rufus-scheduler

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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