在给定时间执行不同的nodejs脚本
Execute different nodejs scripts at a given time
我正在寻找一个很好的解决方案在fire不同的javascript文件与nodejs在一个给定的时间在服务器上运行在Ubuntu上。
我有大约10个不同的剧本,每个剧本每天应该被解雇15次!我的第一个方法是使用at,但是由于事件太多,这会变得很混乱。
现在我考虑使用Node-Schedule,这是你们一些人在SO上建议的,但我不确定这是否是我任务的最佳解决方案…
如果Node-Schedule仍然是最好的方法,你会使用什么结构?
var schedule = require('node-schedule');
var d1 = new Date(2015, 10, 20, 18, 55, 0);
var d2 = new Date(2015, 10, 20, 18, 58, 0);
var xd1 = schedule.scheduleJob(d1, function(){
test.js;
});
var xd2 = schedule.scheduleJob(d2, function(){
test.js;
});
看起来不那么干…div;)
我不会创建一个节点程序只是为了调度另一个节点程序。使用普通的cron
如果你可以每天运行16次而不是15次,那么你可以使用下面两个cron表达式来安排每90分钟运行一次:
' 0 0/3 * * * node test.js'
'30 1/3 * * * node test.js'
如果必须是15次,这个时间表有很好的分布(最多一小时一次,至少每隔一小时一次,每天15次):
'0 0/2,1,9,17 * * * node test.js'
如果理解这个时间表有困难,请使用这个网站。如果您需要15次调用平均分配(每96分钟一次),恐怕您需要将它们分成5个时间表:
0 0,8,16 * * * node test.js
36 1,9,17 * * * node test.js
12 3,11,19 * * * node test.js
48 4,12,20 * * * node test.js
24 6,14,22 * * * node test.js
如果您需要每天运行脚本,那么基于日期的调度不是最佳解决方案。cron风格的调度更合适。
例如var xd1 = schedule.scheduleJob('0 * * * *', function(){
test.js;
});
将每小时运行您的函数(0:00,1:00,2:00等=一天24次)。
和
var xd1 = schedule.scheduleJob('0 */2 * * *', function(){
test.js;
});
将每两个小时运行您的函数(0:00,2:00,4:00等=每天12次)。
每天15次是一个硬性要求吗?使用cron语法,如果不把它分成不同的cronjob(=用同一个函数调用定义更多的job),就不能很容易地定义这种间隔。
这个例子每天运行15次,但它在一天中并不平衡:
var xd1 = schedule.scheduleJob('*/25 */5 * * *', function(){
test.js;
});
相关文章:
- 引用nodejs服务器中html中的java脚本文件
- 如何暂停 NodeJS 脚本
- Nodejs/bin/www脚本在启动时未运行
- 在nodejs中运行Python脚本
- nodejs-如何修复服务器脚本以避免崩溃
- 使用 nodejs vash 模板通过脚本标记发送数据
- 用于Linux服务器编程/作为脚本语言的nodejs
- 来自 NodeJS 脚本的注释是否有可能产生内存问题
- 变量在 NodeJS 脚本中自动重置为其初始值
- nodejs 脚本未在 crontjob 中运行
- 使用BookshelfJS/KnexJS的NodeJS脚本中的基本表关联
- 在给定时间执行不同的nodejs脚本
- NodeJS 脚本在浏览器刷新两次之前没有响应
- NodeJS脚本- npm在exec()上不显示当前安装的版本
- 如何将数据从客户端表单输入传输到服务器端Nodejs脚本
- 不能运行或测试我的NodeJS脚本
- 使用exec()在PHP中执行nodejs脚本文件
- 是否可以从Javascript/HTML调用NodeJS脚本
- 无法在 nodejs 脚本中设置原始模式
- Bash 脚本,用于从 NodeJs 脚本返回退出代码