zoukankan      html  css  js  c++  java
  • pomelo加入定时任务

    需求:在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就能够了

  • 相关阅读:
    Winform Timer用法,Invoke在Timer的事件中更新控件状态
    日期字符串格式转换
    Windows服务的创建、安装、卸载
    Oracle更新表字段时内容中含有特殊字符&的解决方法
    MVC无刷新查询,PagedList分页控件使用,导出Excel
    网页抓取解析,使用JQuery选择器进行网页解析
    asp.net webform 自定义分页控件
    if __name__ == "__main__": tf.app.run()
    Python 虚拟机
    paper reading----Xception: Deep Learning with Depthwise Separable Convolutions
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/6816788.html
Copyright © 2011-2022 走看看