为什么actionherojs任务无法自动启动?

时间:2017-12-09 14:57:22

标签: javascript node.js actionhero

我想使用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服务器,该任务应该自动启动。

2 个答案:

答案 0 :(得分:0)

您需要确保config / tasks.js中的配置的运行工作量大于1,并且调度程序设置为enabled:true。默认情况下不是这种情况,并且队列不可用于开箱即用。

答案 1 :(得分:0)

在actionhero,您必须使任务入队才能首次运行。

  

api.tasks.enqueue(“ taskname”,params,'queue')

在此之后,如果您想重复执行任务,请在任务上使用频率定义