pomelo添加定時任務,pomelo新增工作

來源:互聯網
上載者:User

pomelo添加定時任務,pomelo新增工作
需求:在arena伺服器下增加一個rank定時任務,每一分鐘對對玩家進行一次排行。


首先在game-server/app/servers/arena目錄下增加cron目錄,
在game-server/app/servers/arena/cron目錄下編寫具體的執行的任務的代碼rankCron.js,例如:

var utils = require('../../../util/utils');module.exports = function(app) {  return new Cron(app);};var Cron = function(app) {  this.app = app;};Cron.prototype.rank = function() {    utils.show('arena rank');};

然後在game-server/config/目錄下增加定時任務設定檔crons.json,具體設定檔如下所示:
{    "development":{         "arena": [          {"id": 1, "time": "0 0/1 * * * *", "action": "rankCron.rank"}          ]    },    "production":{          "arena": [          {"id": 1, "time": "0 0/1 * * * *", "action": "rankCron.rank"}          ]    }}


結果



在設定檔crons.json中,id是定時任務在具體伺服器的唯一標識,且不能在同一伺服器中重複;
time是定時任務執行的具體時間,時間的定義跟linux的定時任務類似,一共包括7個欄位,每個欄位的具體定義如下:
*     *     *     *   *    *        command to be executed-     -     -     -   -    -|     |     |     |   |    ||     |     |     |   |    +----- day of week (0 - 6) (Sunday=0)|     |     |     |   +------- month (0 - 11)|     |     |     +--------- day of month (1 - 31)|     |     +----------- hour (0 - 23)|     +------------- min (0 - 59)+------------- second (0 - 59)

例如:"0 30 10 * * *",這就代表每天10:30執行相應任務;"0 0/1 * * * *"表示每一分鐘執行相應任務。
serverId是一個可選欄位,如果有寫該欄位則該任務只在該伺服器下執行,如果沒有該欄位則該定時任務在所有同類伺服器中執行;
action是具體執行任務方法,chatCron.sendMoney則代表執行game-server/app/servers/chat/cron/chatCron.js中的sendMoney方法。


附:linux定時任務
用crontab -e 添加要執行的命令
下格式:
* * * * * /需執行命令的路徑
前5個欄位分別表示:
  分鐘:0-59
  小時:1-23
  日期:1-31
  月份:1-12
  星期:0-6(0表示周日)

還可以用一些特殊符號:
  *:表示任何時刻
  ,:表示分割
 -:表示一個段,如第二端裡: 1-5,就表示1到5點
  /n: 表示每個n的單位執行一次,如第二段裡,*/1, 就表示每隔1個小時執行一次命令。也可以寫成1-23/1.

  pomelo裡面用*/1報錯,改成0/1就可以了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.