我想使用node.js中的actionhero
任务每5分钟运行一次任务,我在任务文件夹中定义的任务如下:
'use strict';
exports.task = {
name: 'scheduleTask',
description: 'Convert Temp Data Into Portal',
frequency: 300000,
queue: 'syncPortal',
run: function (api, params, next) {
api.services.ErpToPortal
.syncInitializeFunctions({})
.then(() => {
return api.services.ErpToPortal
.syncPerson({})
})
.then(() => {
return api.services.ErpToPortal
.syncContractors({})
})
.then((res) => {
next(null, res);
})
.catch(function (err) {
api.log(err, 'error', err);
next(err);
});
}
};
我的问题是,启动actionhero
api服务器时任务没有自动启动,我在这里遗漏了什么吗?正如我从actionherojs文档中所理解的那样,在定义任务的频率后,通过启动actionhero api服务器,该任务应该自动启动。
答案 0 :(得分:0)
您需要确保config / tasks.js中的配置的运行工作量大于1,并且调度程序设置为enabled:true。默认情况下不是这种情况,并且队列不可用于开箱即用。
答案 1 :(得分:0)
在actionhero,您必须使任务入队才能首次运行。
api.tasks.enqueue(“ taskname”,params,'queue')
在此之后,如果您想重复执行任务,请在任务上使用频率定义