Articles of 调度任务

议程.JS:如何安排在X时间开始的活动,并在每个月后重复?

我想安排这样的任务: 从11月1日开始安排一项任务 之后每个月重复一次 我不想在11月1日刚刚完成任务的时候运行它。 我正在使用Agenda.js ,我需要确保我正确地做到这一点,特别是第3点。它不能在计划的时刻运行。 这是我想到的: const Agenda = require('agenda'); const agenda = new Agenda({db: { address:'mongodb://127.0.0.1/agenda' } }); agenda.define('task', (job, done) => { console.log('The task is running', job.attrs.hello); done(); }); agenda.run(() => { var event = agenda.create('task', { hello: 'world' }) event.schedule(new Date('2017-11-01')); event.repeatEvery('1 month'); // Will this run every month from now […]

议程计划的工作只运行一次

我有一个示例程序来开始使用议程,并在第一次运行后卡住。 var Agenda = require('agenda'); var agenda = new Agenda({db: {address: 'localhost/sample-dev', collection: 'pollingJob'}}); agenda.define('First1', function(job, done) { var d = new Date(); console.log("Hello First Job at " + d ); }); agenda.on('ready', function() { agenda.every('5 seconds', 'First1'); agenda.start(); }); 我已经按照议程上的指示完成了这一切,我在这里错过了什么?

NodeJS – 安排一个非常简单的任务在特定的date时间运行

我正在实施一个预约系统,我需要logging接受工作和开始工作之间的时间概念,以及工作的持续时间。 当达到工作起始时间时,我需要从“A状态”移动到“B状态”,一旦达到工作的结束时间,就从“B状态”移动到“C状态”。 我知道我可以使用像Bull或Bee-Queue这样的队列系统来实现这个function,但这似乎是错误的,因为我只需要改变我的工作状态,而不是执行任何后台处理。 我怎么能简单地说:“在下午3点,把这个任务改成'B'状态,下午5点,把这个任务改成'状态C'。 我可以每分钟轮询我的数据库吗? 这是“正确的”方法吗?

用Cassandra在Node.js中的多数据中心环境中分配计划任务

我们正试图build立一个系统,从Cassandra数据库获得一个执行任务列表,然后通过某种团体共识创build一个执行计划(最好在一个节点上),然后由整个服务器集群同意和执行。 我们真的不想添加任何额外的软件,如Redis或AMPQ系统,而是直接build立在所有运行这些作业的服务器上。 到目前为止,我们已经发现了Skiff,一种Raftalgorithm的实现,它看起来可以完成任务,但是我想知道是否有人以纯粹的Node.js方式find了一个不涉及外部消息传递系统的优雅解决scheme。

使用节点时间表(永久使用)执行计划任务后重新启动后保留

我想开发一个node.js程序,它将在一个特定的时间使用一个作业调度程序(node-schedule)来执行。 这个程序使用forever(node.js模块)在后台运行。 以下是我的app.js的内容: var schedule = require('node-schedule'); ~~ var id = request.body.id; var scheduled = schedule.scheduledJobs; if(scheduled[id]!=null){ //Tasks } else{ scheduled[id].cancel; delete scheduled[id]; } 但是,如果app.js被任何原因杀死,则schedule对象被删除。 有时app.js永远重启。 我如何处理节点时间表对象?

如何安排一个function,每天使用NodeJS和Generators运行?

我需要一个函数,每天在一个给定的时间与生成器 (yield)进行调用,做我的search我已经find了两个节点模块,使我能够做到这一点,一个是node-schedule ,另一个是node-cron Node-cron 似乎不支持生成器 节点时间表应该有支持,但它似乎不工作在这里指出: 问题#325 为了更清楚我想要完成什么,我附上了#325相同的代码: const date = momemt().add(1, 's'); // 1 second after now. schedule.scheduleJob('taksid', date, function*(){ console.log('Hi'); const result = yield Message.findAll(); console.log('Result: ' + result); }); 如问题所述,'嗨'被打印出来,'结果'不打印。 我无法find一个方法来安排一个函数与发电机,如果你们中有些人知道如何做到这一点将是伟大的! 先谢谢你们

如何在我的express.js网站(或任何其他特定时间)的每个星期一早上运行脚本?

我希望能够每周一早上运行一次“node sendSomeEmails.js”。 到目前为止,我发现最简单的方法就是在我的日程表中提醒一下,然后启动一个terminal并自行完成: 我正在使用Mandrill构build一个自动化的电子邮件系列。 用户将在我的网站上订阅(使用快递build立在node.js上),立即获得第一封电子邮件,然后在每个星期一早上,我想发送下一封电子邮件。 我会保持每个用户在我的数据库有多远,但我不知道触发星期一早上发送的最佳方式。 顺便说一下,我在IBM Bluemix上运行我的站点。 也许有一个简单的方法可以用AWS来做到这一点…虽然在AWS上我从来没有做过任何事情。

NodeJS定期任务

总之,我会解释我的问题: 我正在开发一个电子商务网站。 其中一个特点是客户可以创build采购规则 。 通过这些规则,客户可以设置开始date,周期和产品购买。 结果是产品将在[开始date]的每[周期]天内购买。 该系统以NodeJS作为后端,MongoDB作为数据库,AngularJS作为前端开发。 我发现了一些在NodeJS中调度任务的项目。 其中两个是: 节点时间表 节点的cron 他们两个都是很棒的工具,但是我和他们两个有同样的问题。 问题是我需要创build计划任务以及停止它们。 使用这些工具很清楚如何安排一段时间执行的function,但是我怎样才能随时阻止它们呢? node-schedule和node-cron提供的对象有一个cancel()或stop()方法来停止调度,但为了调用这个方法我需要有这个对象。 我的问题是,如果有一种方法可以将计划任务“存储”在数据库中,以便能够在任何时候,从创buildfunction以外的任何地方阻止它们。 如果这是不可能的,如果有另一种工具比我所提到的做得更好, 非常感谢您的阅读和任何帮助,将不胜感激。

Grunt:当函数不能被分割到不同的任务时,如何依次运行一个函数,然后是一个任务,然后是另一个函数?

我正在使用Grunt来生成一个构build。 我是Grunt,javascript和nodejs的新手,所以任何新的观点都会受到欢迎。 我的Gruntfile中的一些任务依赖于插件(比如用于javascript缩小的“uglify”),而另外一些工作stream程最适合于自己编写javascript函数。 (1)执行一个javascript函数(2)在该函数之后立即执行一个grunt任务(3)执行另一个javascript函数。 它需要按照这个顺序发生。 但是,由于Grunt只是一个任务调度程序,所以在(1)和(3)完成之后,它将作为最后一步运行(1),排队(2),运行(3),然后运行(2)。 以下是一个非常简单的假设自定义任务的用例,以更好地解释情况。 grunt.task.registerTask('minifyJS', function() { jsFilepathMapping = configureUglifiy(); /** note – configureUglify is needed because the minification filepaths are generated on the fly, I do not know them before the script runs and more than that, there are so many that it would be really bulky to create init targets […]

使用节点时间表安排作业

我正在使用名为node-schedule的节点模块 我有这个function,预计在每个季度开始时会一次点燃。 var rule = {hour: 0, minute: 0, day: 1, month: [0, 3, 6, 9]}; var logCost = schedule.scheduleJob(rule, function(){ console.log('logCost output this shit at: ' + dateFormat(Date(), 'isoTime')); }); 问题是这个函数只是在整个一天(那个月的第一天)继续执行。 我如何重写这只执行一次,可能是我的规则variables有什么问题,但我什么都看不到。