在 sails.js 开始调度服务,永远从帆中访问所有水线模型
Starting a scheduling service in sails.js with forever from within sails with access to all waterline models
我有一个独立的调度服务设置为每 1 小时执行一些逻辑,我想在 sails
启动后立即用 forever
启动此服务,我不确定什么是最好的方法这样做。
// services/Scheduler.js
sails.load(function() {
setInterval( logicFn , config.schedulingInterval);
});
Sails 可以在 config.bootstrap 模块中执行 bootstrap 逻辑,我将使用 forever-monitor 节点模块 \
var forever = require('forever-monitor'),
scheduler = new (forever.Monitor)( schedulerPath, {
max: 20,
silent: true,
args: []
});
module.exports.bootstrap = function(cb) {
scheduler.start();
cb();
};
如果服务因任何原因失败并重新启动,它会再次访问所有水线模型,如何确保它每次都按预期工作?
拜托拜托,请始终分享您的 sails.js 版本号! 这对于使用谷歌搜索的人来说非常重要 questions/answers!
有很多方法可以做到这一点。然而,对于那些想要 "sails.js" 方式的人来说,有更新的 sails.js 版本的钩子。
请参阅 github 中的此问题线程,具体而言,在问题关闭后,一些用户会提供一些非常有用的解决方案。最新由"scott-wyatt"分享,2014年12月28日评论:
正如 brittonjb 在评论中所说,一个简单的解决方案是使用 cron module 进行调度。
您可以指定一个函数,让它在您希望的任何时间间隔调用;这个函数可以在 /config/bootstrap.js 中定义,也可以在其他地方定义(例如 mail.dailyReminders() 如果你有一个带有 dailyReminders 方法的邮件服务);
我有一个独立的调度服务设置为每 1 小时执行一些逻辑,我想在 sails
启动后立即用 forever
启动此服务,我不确定什么是最好的方法这样做。
// services/Scheduler.js
sails.load(function() {
setInterval( logicFn , config.schedulingInterval);
});
Sails 可以在 config.bootstrap 模块中执行 bootstrap 逻辑,我将使用 forever-monitor 节点模块 \
var forever = require('forever-monitor'),
scheduler = new (forever.Monitor)( schedulerPath, {
max: 20,
silent: true,
args: []
});
module.exports.bootstrap = function(cb) {
scheduler.start();
cb();
};
如果服务因任何原因失败并重新启动,它会再次访问所有水线模型,如何确保它每次都按预期工作?
拜托拜托,请始终分享您的 sails.js 版本号! 这对于使用谷歌搜索的人来说非常重要 questions/answers!
有很多方法可以做到这一点。然而,对于那些想要 "sails.js" 方式的人来说,有更新的 sails.js 版本的钩子。
请参阅 github 中的此问题线程,具体而言,在问题关闭后,一些用户会提供一些非常有用的解决方案。最新由"scott-wyatt"分享,2014年12月28日评论:
正如 brittonjb 在评论中所说,一个简单的解决方案是使用 cron module 进行调度。 您可以指定一个函数,让它在您希望的任何时间间隔调用;这个函数可以在 /config/bootstrap.js 中定义,也可以在其他地方定义(例如 mail.dailyReminders() 如果你有一个带有 dailyReminders 方法的邮件服务);