pomelo加入定时任务
需求:在arenaserver下添加一个rank定时任务,每一分钟对对玩家进行一次排行。
首先在game-server/app/servers/arena文件夹下添加cron文件夹。
在game-server/app/servers/arena/cron文件夹下编写详细的运行的任务的代码rankCron.js。比如:
然后在game-server/config/文件夹下添加定时任务配置文件crons.json,详细配置文件例如以下所看到的:
time是定时任务运行的详细时间。时间的定义跟linux的定时任务类似,一共包含7个字段。每一个字段的详细定义例如以下:
比如:"0 30 10 * * *",这就代表每天10:30运行对应任务。"0 0/1 * * * *"表示每一分钟运行对应任务。
serverId是一个可选字段,假设有写该字段则该任务仅仅在该server下运行。假设没有该字段则该定时任务在全部同类server中运行。
action是详细运行任务方法,chatCron.sendMoney则代表运行game-server/app/servers/chat/cron/chatCron.js中的sendMoney方法。
首先在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"} ] } }
结果如图:
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是一个可选字段,假设有写该字段则该任务仅仅在该server下运行。假设没有该字段则该定时任务在全部同类server中运行。
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就能够了