node.js - 在 sails.js 中启动调度服务,永远从 sails 中访问所有水线模型

标签 node.js sails.js waterline forever forever-monitor

我有一个独立的调度服务设置为每 1 小时执行一些逻辑,我想在 sails 启动后立即使用 forever 启动此服务,但我不确定是什么最好的方法。

// services/Scheduler.js
sails.load(function() {
  setInterval( logicFn , config.schedulingInterval);
});

Sails 可以在 config.bootstrap 模块中执行 Bootstrap 逻辑,我将使用 forever-monitor Node 模块\

var forever = require('forever-monitor'),
    scheduler = new (forever.Monitor)( schedulerPath, {
      max: 20,
      silent: true,
      args: []
    });

module.exports.bootstrap = function(cb) {
  scheduler.start();
  cb();
};

如果服务因任何原因失败并重新启动,它会再次访问所有水线模型,如何确保它每次都按预期工作?

最佳答案

正如 brittonjb 在评论中所说,一个简单的解决方案是使用 cron module用于调度。 您可以指定一个函数,让它在您希望的任何时间间隔调用;这个函数可以在/config/bootstrap.js 中定义,也可以在其他地方定义(例如 mail.dailyReminders() 如果你有一个带有 dailyReminders 方法的邮件服务);

关于node.js - 在 sails.js 中启动调度服务,永远从 sails 中访问所有水线模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29688055/

相关文章:

javascript - 如何判断带有管道的流何时完成排水

node.js - 用于 REST API 的 derbyjs

node.js - Etherpad:连接身份验证的最佳方式

mysql - sequelize.js orm :Unique email validation for mysql not working

javascript - 如何在 mocha 测试中获取 sails 应用程序的运行时 url

node.js - sails Captain 0.5.8 超时/卡住

validation - 如何知道哪个属性称为水线验证规则?

node.js - 与 MongoDb - Node.js with Sails 的连接过多

node.js - 如何使用 Sails 为 Redis 记录调用 EXPIRE 命令

javascript - 根据输入数据使用括号表示法