需求:在arenaserver下添加一个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是定时任务在详细server的唯一标识。且不能在同一server中反复。

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就能够了

pomelo加入定时任务的更多相关文章

  1. Asp.Net Core 使用Quartz基于界面画接口管理做定时任务

    今天抽出一点点时间来造一个小轮子,是关于定时任务这块的. 这篇文章主要从一下几点介绍: 创建数据库管理表 创建web项目 引入quarzt nuget 包 写具体配置操作,实现定时任务处理 第一步:创 ...

  2. Asp.Ner Core定时任务

    AspNet Core定时任务 纪念人类首张黑洞照片发布 第一种方式BackgroundService 基于后台服务类BackgroundService实现,类所在命名空间Microsoft.Exte ...

  3. 在dotnet core实现类似crontab的定时任务

    前段需要在业务中实现某些时间段的简单定时任务,类似crontab的调度,因为业务会放在docker中,所以不想用直接用crontab,在网上搜了一下,发现一个开源的实现 Pomelo.AspNetCo ...

  4. .Net Core 定时任务TimeJob

    转载自:https://blog.csdn.net/u013711462/article/details/53449799 定时任务 Pomelo.AspNetCore.TimedJob Pomelo ...

  5. Java定时任务的常用实现

    Java的定时任务有以下几种常用的实现方式: 1)Timer 2)ScheduledThreadPoolExecutor 3)Spring中集成Cron Quartz 接下来依次介绍这几类具体实现的方 ...

  6. [转]Java实现定时任务的三种方法

    在应用里经常都有用到在后台跑定时任务的需求.举个例子,比如需要在服务后台跑一个定时任务来进行非实时计算,清除临时数据.文件等.在本文里,我会给大家介绍3种不同的实现方法: 普通thread实现 Tim ...

  7. 使用python crontab设置linux定时任务

    熟悉linux的朋友应该知道在linux中可以使用crontab设置定时任务.可以通过命令crontab -e编写任务.当然也可以直接写配置文件设置任务. 但是有时候希望通过脚本自动设置,比如我们应用 ...

  8. C#定时任务组件之FluentScheduler

    FluentScheduler是.NET开源处理定时任务组件 1.任务的创建注册 public static void TaskActionByMinutes(Action action, int c ...

  9. 浅谈 linux 例行性工作 crontab (linux定时任务)

    定时任务大家都挺说过,就好比你手机上的闹钟,到了指定的时候就会响起. 今天在对redis缓存进行定时储存时又操作了一把,发现一些细节,写的不好.大家就将就看吧, 首先 简单介绍一下linux 例行性工 ...

随机推荐

  1. (转)编写高质量的OC代码

    点标记语法 属性和幂等方法(多次调用和一次调用返回的结果相同)使用点标记语法访问,其他的情况使用方括号标记语法.   良好的风格: view.backgroundColor = [UIColor or ...

  2. ZOJ 2058 The Archaeologist's Trouble II(贪心+模拟)

    [题目大意] 一个n高的塔,由@ * ?三种字符组成.每行相邻两个字符不能相邻. '?' 表示未确定是 '@' 还是 '*' . 求'@' 可能出现的最多和最少次数. [分析] 在可以填的情况下 先填 ...

  3. 【ORACLE】调整序列的当前种子值

    [ORACLE]调整序列的当前种子值 --必须用SYS用户执行脚本:或具有SYSDBA角色登录: CREATE OR replace ); v_step ):;--步进 tsql ); BEGIN E ...

  4. python常见陷阱

    copy to https://pythonguidecn.readthedocs.io/zh/latest/writing/gotchas.html 大多数情况下,Python的目标是成为一门简洁和 ...

  5. vs系列自带的localdb数据库当做数据库

    我在学习mvc4框架的时候,因为是笔记本,觉得装了一个vs就很大了,再装一个sql server 就更麻烦,因此,就想到使用vs自带的localDB,直接生成预览的时候是没有问题的,但是当把mvc4的 ...

  6. PYDay10&11&12&13-常用模块:time|datetime|os|sys|pickle|json|xml|shutil|logging|paramiko、configparser、字符串格式化、py自动全局变量、生成器迭代器

    1.py文件自动创建的全局变量 print(vars()) 返回值:{'__name__': '__main__', '__package__': None, '__loader__': <_f ...

  7. hdu2022

    #include <stdio.h> #include <math.h> #define here puts("go,go,go!\n") int main ...

  8. 九度oj 题目1352:和为S的两个数字

    题目描述: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输入: 每个测试案例包括两行: 第一行包含一个整数n和k, ...

  9. BZOJ 3238 [Ahoi2013]差异 ——后缀自动机

    后缀自动机的parent树就是反串的后缀树. 所以只需要反向构建出后缀树,就可以乱搞了. #include <cstdio> #include <cstring> #inclu ...

  10. Java的反射机制和动态代理

    介绍Java注解的时候,多次提到了Java的反射API.与javax.lang.model不同的是,通过反射API可以获取程序在运行时刻的内部结构.反射API中提供的动态代理也是非常强大的功能,可以原 ...