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

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

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

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

1.前言

     無論是用ruby做系統管理,還是用rails做web開發,都可能遇到周期性任務,它們按照一定時間周期(1小時,2天......)持續地觸發。在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命令很強大,但我總是記不住它的命令參數,為了避免一遍一遍去man它的手冊,還是ruby語法比較親民。

首先,安裝whenever:

復制代碼 代碼如下:

$ gem install whenever

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

復制代碼 代碼如下:

$ cd /project 
$ wheneverize .

whenverize命令會在config文件夾下創建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環境,獨立執行ruby代碼的類型:

復制代碼 代碼如下:

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

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

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

復制代碼 代碼如下:

$ whenever   #不帶參數的whenever會顯示轉換程cron任務的代碼,不寫入cron任務表 
$ whenever -w #寫入cron任務表,開始執行 
$ 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項目啟動后,這些周期性任務會自動加載執行。

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環境,就在任務文件加入:
復制代碼 代碼如下:

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

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

巨人網絡通訊聲明:本文標題《ruby中執行周期性任務(定時任務)的3種方法》,本文關鍵詞  ruby,中,執行,周期性,任務,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ruby中執行周期性任務(定時任務)的3種方法》相關的同類信息!
  • 本頁收集關于ruby中執行周期性任務(定時任務)的3種方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    免费一区二区视频| 天天操天天干天天综合网| 久久综合狠狠综合久久综合88| 国产精品美女久久久久av爽李琼| 日本不卡视频在线| 亚洲一区中文日韩| 欧美性受极品xxxx喷水| 一个色在线综合| 欧美最猛性xxxxx直播| 亚洲视频狠狠干| 91精品91久久久中77777| 欧美视频一区二区| 亚洲国产你懂的| 不卡一区在线观看| 国产女人18毛片水真多成人如厕| 粉嫩aⅴ一区二区三区四区五区| 亚洲国产高清在线观看视频| 色一情一乱一乱一91av| 亚洲福利一区二区三区| 中文字幕av在线一区二区三区| 国产91精品欧美| 国产精品国产三级国产aⅴ入口 | 粉嫩av一区二区三区粉嫩| 国产女主播视频一区二区| 色噜噜夜夜夜综合网| 免费看欧美美女黄的网站| 久久综合久久综合亚洲| 福利视频网站一区二区三区| 亚洲三级在线免费观看| 欧美日韩国产首页在线观看| 国产一区 二区 三区一级| 国产精品你懂的在线欣赏| 欧美午夜片在线看| 美日韩黄色大片| 精品国产乱码久久久久久图片 | 精品国产伦一区二区三区免费 | 三级久久三级久久| 日韩精品中文字幕一区二区三区| 久久精品99久久久| 一区二区三区欧美激情| 日本一二三不卡| 91精品国产全国免费观看| 成人免费看黄yyy456| 亚洲成av人片在www色猫咪| 久久久www成人免费无遮挡大片| 欧美日韩精品一区二区三区四区 | 亚洲国产精品黑人久久久| xnxx国产精品| 欧美日韩高清一区二区不卡| 丁香六月综合激情| 天堂久久一区二区三区| 国产三级三级三级精品8ⅰ区| 欧美高清dvd| 99精品欧美一区二区三区小说| 亚洲老妇xxxxxx| 日本一区免费视频| 国产午夜亚洲精品不卡| 精品国产三级a在线观看| 欧美日韩国产免费一区二区| 日本精品一级二级| 91亚洲男人天堂| 国产麻豆成人传媒免费观看| 视频在线观看一区| 水蜜桃久久夜色精品一区的特点| 亚洲视频一二三| 国产精品视频免费| 久久品道一品道久久精品| 久久久www成人免费毛片麻豆| 精品国产免费久久| 国产欧美日本一区二区三区| 国产精品久久久久四虎| 国产精品麻豆视频| 国产精品久久久久毛片软件| 国产精品女上位| 日韩理论片在线| 亚洲免费在线观看| 亚洲欧美日本韩国| 亚洲四区在线观看| 亚洲男人的天堂在线aⅴ视频 | 久久久亚洲国产美女国产盗摄 | 欧美色图在线观看| 欧美图片一区二区三区| 97se亚洲国产综合自在线观| 久久av资源网| 国产高清久久久| av亚洲精华国产精华| 色综合久久综合| 欧美一区二区三区日韩| 久久蜜桃香蕉精品一区二区三区| 欧美极品xxx| 亚洲国产人成综合网站| 久久精品国产亚洲一区二区三区| 国产酒店精品激情| 日本二三区不卡| 精品久久久三级丝袜| 日本v片在线高清不卡在线观看| 日本午夜一本久久久综合| 国产麻豆视频一区| 91久久人澡人人添人人爽欧美| 91精品国产综合久久香蕉麻豆| 久久婷婷国产综合国色天香| 最新不卡av在线| 美国三级日本三级久久99| 成人免费va视频| 日韩欧美精品在线| 亚洲私人黄色宅男| 精品一区二区日韩| 在线观看亚洲成人| 久久色在线观看| 亚洲成a人片在线不卡一二三区 | 91久久精品一区二区| 精品国产亚洲在线| 亚洲成人av在线电影| 国产91色综合久久免费分享| 欧美美女一区二区在线观看| 国产精品久久久久一区二区三区共 | 在线免费观看日韩欧美| 久久久久久久综合| 午夜久久久久久电影| caoporn国产一区二区| 久久夜色精品国产噜噜av| 日韩avvvv在线播放| 在线视频国内一区二区| 欧美激情自拍偷拍| 精品亚洲欧美一区| 777午夜精品视频在线播放| 亚洲免费在线视频一区 二区| 国产精品一区二区久激情瑜伽 | 免费一区二区视频| 欧美日韩在线三区| 亚洲另类在线视频| 99精品国产91久久久久久| 久久久久国产免费免费| 激情都市一区二区| 精品免费一区二区三区| 久久精品国产第一区二区三区| 欧美日本在线观看| 午夜电影一区二区三区| 91蜜桃免费观看视频| 亚洲欧洲成人精品av97| 成人国产精品免费观看动漫| 亚洲国产精品成人综合| 91老司机福利 在线| 国产精品色哟哟网站| 粉嫩av一区二区三区粉嫩| 国产片一区二区三区| 国产91高潮流白浆在线麻豆| 国产亚洲精品7777| 成人手机在线视频| 中文字幕日韩一区| 欧美在线视频不卡| 天堂资源在线中文精品| 欧美一区三区四区| 精彩视频一区二区三区| 国产亚洲欧洲一区高清在线观看| 国产suv精品一区二区6| 国产精品视频一二三区| 色av成人天堂桃色av| 午夜影视日本亚洲欧洲精品| 日韩午夜激情免费电影| 国产一区二区精品久久91| 国产精品视频yy9299一区| 91在线国产福利| 亚洲成人动漫在线观看| 精品国产一区二区三区四区四 | av激情亚洲男人天堂| 一区二区在线看| 欧美大度的电影原声| 成人黄色电影在线| 亚洲地区一二三色| 久久久精品国产99久久精品芒果| 91原创在线视频| 免费高清成人在线| 国产清纯白嫩初高生在线观看91| 色视频欧美一区二区三区| 久久精品999| 亚洲视频一二区| 欧美tk丨vk视频| 欧美在线免费观看亚洲| 国产美女在线精品| 亚洲国产毛片aaaaa无费看| xf在线a精品一区二区视频网站| 色婷婷亚洲综合| 国内一区二区视频| 三级欧美韩日大片在线看| 欧美激情艳妇裸体舞| 欧美日本韩国一区二区三区视频 | 色综合天天在线| 精品一区二区三区av| 亚洲成人综合网站| 国产精品久久久久久久久快鸭| 欧美日韩精品欧美日韩精品| 懂色一区二区三区免费观看| 日日夜夜免费精品| 亚洲精品高清视频在线观看| 国产欧美日韩久久| 精品99999| 欧美α欧美αv大片| 欧美久久久影院| 欧美自拍丝袜亚洲|