婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ruby中執(zhí)行周期性任務(定時任務)的3種方法

ruby中執(zhí)行周期性任務(定時任務)的3種方法

熱門標簽:征服者企業(yè)地圖標注 淮安自動外呼系統(tǒng)供應商 漯河電銷 外呼線路從哪里出來的 柯城手機地圖如何做地圖標注 天津外呼系統(tǒng)怎么收費 巫師3地圖標注魔力之所 AI電銷機器人 線路 中牟外呼系統(tǒng)違法嗎

1.前言

     無論是用ruby做系統(tǒng)管理,還是用rails做web開發(fā),都可能遇到周期性任務,它們按照一定時間周期(1小時,2天......)持續(xù)地觸發(fā)。在ruby中,我認為一次性任務使用sidekiq來完成是非常方便的,而周期性的任務就需要用到whenever,sidetiq,clockwork等等gem了。

2.whenever

首先,whenever是基于linux的cron服務的,所以,在windows平臺上沒有直接的方法使用該gem。whenever嚴格來說應該算一個cron的翻譯器,將ruby代碼翻譯為cron腳本,從而將周期性任務轉交給cron實際去完成。對于精通cron的shell程序員來說可能不值一提,但對rubyist卻不是。首先,我們可以使用ruby語言來書寫任務代碼,在ruby層面上控制代碼,避免了和一些shell腳本的切換;另外,cron命令很強大,但我總是記不住它的命令參數(shù),為了避免一遍一遍去man它的手冊,還是ruby語法比較親民。

首先,安裝whenever:

復制代碼 代碼如下:

$ gem install whenever

然后切換到任務編寫文件夾project下,保證該文件夾下有一個config文件夾。如果是在rails項目中建立whenever任務,則config文件夾已經(jīng)存在了。

復制代碼 代碼如下:

$ cd /project 
$ wheneverize .

whenverize命令會在config文件夾下創(chuàng)建schedule.rb文件,我們的任務代碼需要在該文件中定義。下面的是schedule.rb文件示例:

復制代碼 代碼如下:

every 30.minutes do
  runner "Blog.parseAll"
end
 
every 30.minutes, :at => 17 do
  runner "PostWeibo.post"
end
 
every 15.minutes do
  runner "WeiBo.update"
end
 
every 30.minutes, :at => 20 do
  runner "RSSGenerator.generate"
end
 
every 1.day, :at => '2:00 am' do
  command "cd /var/www/mzread/current/public gunzip -c sitemap1.xml.gz > sitemap1.xml touch sitemap1.xml "
end

如示例代碼,whenever默認定義了三種任務類型:runner, rake, command,我們也可以定義自己的任務,比如,下面的代碼定義了脫離rails環(huán)境,獨立執(zhí)行ruby代碼的類型:

復制代碼 代碼如下:

job_type :ruby, "cd :path /usr/bin/ruby ':task'.rb"
  
every :hour do
  ruby 'have_a_rest'
end

該示例描述了:每個小時會執(zhí)行一次當前文件夾下的have_a_rest.rb腳本。

下面看看怎么將任務寫入cron服務。

復制代碼 代碼如下:

$ whenever   #不帶參數(shù)的whenever會顯示轉換程cron任務的代碼,不寫入cron任務表 
$ whenever -w #寫入cron任務表,開始執(zhí)行 
$ whenever -c #取消任務

如果要查看cron任務表,也可以使用linux的命令列出所有cron任務:
復制代碼 代碼如下:

$ crontab -l

3.sidetiq

sidetiq是sidekiq的親兄弟,如果在rails項目中使用sidekiq來處理后臺任務,那么就用sidetiq來交付周期性任務也顯得比較自然。

安裝sidetiq:

復制代碼 代碼如下:

$ [sudo] gem install sidetiq

定義周期性任務:

復制代碼 代碼如下:

class MyWorker 
  include Sidekiq::Worker 
  include Sidetiq::Schedulable 
  
  recurrence { daily } 
  
  def perform 
    # do stuff ... 
  end
end

sidetiq和sidekiq一樣,依賴于redis消息來處理消息。當rails項目啟動后,這些周期性任務會自動加載執(zhí)行。

4.clockwork

clockwork和sidetiq一樣,也不必依賴于cron,可以適應”跨平臺“要求。下面是代碼示例(clock.rb):

復制代碼 代碼如下:

require 'clockwork'
include Clockwork 
  
handler do |job| 
  puts "Running #{job}"
end
  
every(10.seconds, 'frequent.job') 
every(3.minutes, 'less.frequent.job') 
every(1.hour, 'hourly.job') 
  
every(1.day, 'midnight.job', :at => '00:00')

啟動任務:

復制代碼 代碼如下:

$ clockwork clock.rb 
Starting clock for 4 events: [ frequent.job less.frequent.job hourly.job midnight.job ] 
Triggering frequent.job

如果要帶上rails環(huán)境,就在任務文件加入:
復制代碼 代碼如下:

require './config/boot'
require './config/environment'

標簽:棗莊 大慶 內(nèi)江 克拉瑪依 河池 甘孜 西雙版納 南昌

巨人網(wǎng)絡通訊聲明:本文標題《ruby中執(zhí)行周期性任務(定時任務)的3種方法》,本文關鍵詞  ruby,中,執(zhí)行,周期性,任務,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ruby中執(zhí)行周期性任務(定時任務)的3種方法》相關的同類信息!
  • 本頁收集關于ruby中執(zhí)行周期性任務(定時任務)的3種方法的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲国产日韩av| 久久精品亚洲精品国产欧美| aaa国产一区| 国产mv日韩mv欧美| 大陆成人av片| 91美女片黄在线观看91美女| 成人午夜电影久久影院| 成年人午夜久久久| 91视视频在线观看入口直接观看www | 国产亚洲婷婷免费| 久久久久久夜精品精品免费| 中文字幕电影一区| 亚洲精选一二三| 婷婷久久综合九色综合绿巨人 | 欧美日韩国产综合一区二区| 欧美中文字幕不卡| 欧美精品tushy高清| 欧美一二三在线| 久久免费视频色| 欧美韩日一区二区三区四区| 国产精品成人在线观看| 夜夜精品视频一区二区| 美国毛片一区二区三区| 国产河南妇女毛片精品久久久| 不卡的av在线| 欧美国产激情二区三区| 亚洲精品欧美在线| 麻豆91在线观看| www.日韩在线| 欧美一区二区三区免费大片 | 日韩欧美国产综合一区| 国产三级精品三级| 亚洲成av人在线观看| 国产成人在线看| 欧美日韩视频在线第一区 | 夜夜嗨av一区二区三区中文字幕 | 久久蜜臀中文字幕| 亚洲人成精品久久久久久| 日韩国产成人精品| eeuss鲁一区二区三区| 欧美精品aⅴ在线视频| 国产精品久久久久久久午夜片| 亚洲国产美女搞黄色| 国产不卡免费视频| 这里只有精品免费| 中文字幕一区二区三区四区不卡| 亚洲午夜羞羞片| 国产高清不卡一区二区| 欧美精品精品一区| 亚洲乱码国产乱码精品精可以看| 精品一区二区三区在线播放| 欧美日韩在线播放| 亚洲日本乱码在线观看| 国产精品亚洲一区二区三区在线| 91超碰这里只有精品国产| 亚洲精品视频免费观看| 成人激情开心网| 精品国产91久久久久久久妲己| 亚洲三级久久久| 波多野结衣一区二区三区| 精品国产一区二区三区四区四| 亚洲成精国产精品女| 色综合天天综合网天天看片| 国产精品三级视频| 国产成人亚洲综合a∨婷婷 | 一区二区三区精品久久久| 99精品视频在线播放观看| 亚洲国产激情av| av电影天堂一区二区在线| 国产精品欧美极品| 成人av手机在线观看| 国产精品三级电影| 91美女精品福利| 亚洲视频在线观看三级| 91亚洲精华国产精华精华液| 亚洲色图19p| 91福利在线导航| 亚洲1区2区3区视频| 欧美日本国产一区| 人人爽香蕉精品| 久久综合丝袜日本网| 国产老妇另类xxxxx| 午夜精品久久久久久久久| 欧美性色欧美a在线播放| 亚洲成av人片一区二区梦乃| 日韩欧美黄色影院| 国产剧情一区二区三区| 成人欧美一区二区三区白人 | 日韩国产精品91| 日韩一级大片在线观看| 国产一区二区三区日韩| 国产精品理论在线观看| 欧美日韩中字一区| 韩国v欧美v亚洲v日本v| 中文字幕一区二区三区不卡| 欧美日韩亚洲丝袜制服| 国产综合色精品一区二区三区| 国产精品人人做人人爽人人添| 欧美在线色视频| 国产一区二区三区| 亚洲嫩草精品久久| 91精品国产综合久久久蜜臀图片| 国产精品一二三在| 亚洲香肠在线观看| 久久婷婷国产综合国色天香| 日本道精品一区二区三区| 毛片不卡一区二区| 一区二区三区欧美在线观看| 精品久久久久久久久久久久包黑料 | 最新国产成人在线观看| 777午夜精品视频在线播放| 国产成人免费视| 亚洲成年人网站在线观看| 中文成人综合网| 日韩视频永久免费| 色综合一个色综合亚洲| 国产一区欧美日韩| 免费看日韩精品| 一区二区三区成人| 中文字幕 久热精品 视频在线| 欧美一区二区三区免费在线看| 91免费看视频| 成人免费视频caoporn| 另类小说色综合网站| 亚洲一区二区三区视频在线播放| 久久精品一级爱片| 日韩一区二区精品在线观看| 欧美性受xxxx| 日韩制服丝袜av| 欧美一区在线视频| 久久99精品国产麻豆不卡| 欧美大度的电影原声| 久久99精品国产.久久久久久| 日韩欧美国产一区在线观看| 精品亚洲porn| 国产午夜精品一区二区| www.日韩精品| 一区二区三区视频在线看| 欧美日韩国产欧美日美国产精品| 午夜天堂影视香蕉久久| 欧美一区二区性放荡片| 九九热在线视频观看这里只有精品| 久久综合色天天久久综合图片| 欧美电影免费观看完整版| 日韩国产欧美在线观看| 精品入口麻豆88视频| 欧美一区二区不卡视频| 成人福利视频在线看| 99在线视频精品| 成人av网站在线观看| 色综合久久久久久久久久久| 91色综合久久久久婷婷| 91国产成人在线| 在线观看av一区| 欧美日韩1区2区| 久久一区二区三区四区| 亚洲国产精品99久久久久久久久| 国产精品毛片久久久久久| 国产精品久久久久一区| 亚洲黄色性网站| 日韩av不卡一区二区| 国产乱人伦精品一区二区在线观看| 国产激情一区二区三区四区 | 国产一区二区三区在线观看免费 | 成人晚上爱看视频| 94色蜜桃网一区二区三区| 欧美视频一区二区三区四区 | 欧美aaaaaa午夜精品| 极品少妇xxxx精品少妇偷拍| 成人高清视频免费观看| 欧美性极品少妇| 久久久五月婷婷| 亚洲欧美日韩成人高清在线一区| 亚洲r级在线视频| 国产成人精品1024| 在线视频一区二区三区| 精品国产乱码久久久久久夜甘婷婷| 国产精品久久久久久福利一牛影视| 亚洲一区二区五区| 国产高清不卡二三区| 欧美午夜精品久久久| 国产亚洲欧洲997久久综合| 亚洲自拍偷拍欧美| 国产精品影音先锋| 欧美日韩高清影院| 国产精品福利影院| 国产自产2019最新不卡| 欧美性生活影院| 欧美国产一区二区| 男女性色大片免费观看一区二区| 成人午夜碰碰视频| 欧美一级艳片视频免费观看| 亚洲精品欧美在线| 亚洲综合av网| 日韩欧美亚洲一区二区| 欧美性视频一区二区三区| 99热99精品| 成人午夜电影小说| 国产福利一区二区三区在线视频| 蜜桃视频在线观看一区二区|