我想使用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应用程序接口服务器时任务不能自动启动,我是不是遗漏了什么?根据我在actionherojs文档中的理解,在定义了一个任务的频率之后,通过启动actionhero api服务器,该任务应该会自动启动。
发布于 2017-12-11 12:55:02
您需要确保config/tasks.js中的配置具有大于1的运行工作线程数量,并将调度程序设置为enabled: true。默认情况下并非如此,队列开箱即用。
发布于 2019-04-04 20:09:37
在actionhero中,你必须将任务排入队列才能第一次运行。
api.tasks.enqueue(“任务名”,参数,‘队列’)
在此之后,如果您想重复任务,请在任务中使用频率定义
https://stackoverflow.com/questions/47729837
复制相似问题