名称 最后提交
build 正在载入提交数据...
frp 正在载入提交数据...
src 正在载入提交数据...
.gitignore 正在载入提交数据...
README.md 正在载入提交数据...
eslint.config.js 正在载入提交数据...
package.json 正在载入提交数据...
tsconfig.json 正在载入提交数据...

1.安装配置 npm install git+http://git.ydniu.cn/zhanghw/job-executor.git#master

frpc配置 remotePort 注意代理服务器目前只开放 17001-17010端口(每个客户端启动建议使用不同的端口)

serverAddr = "118.89.26.241" serverPort = 17000 auth.token="aolei@harvey"

[[proxies]] name = "test-tcp" type = "tcp" localIP = "127.0.0.1" localPort = 8088 remotePort = 17001

2.使用案列

import * as express from "express"; import { JobExecutor } from "job-executor"; import * as path from "path";

const config = { app: express().use(require('body-parser').json()), appDomain: "http://10.0.1.92:17001/", port: 8088, xxlJob: { executorKey: "job-ydn-zq", // 注:开发环境建议加后缀区分 scheduleCenterUrl: "http://xxljob.ydniu.com/xxl-job-admin", accessToken: "default_token", jobLogPath: "logs/job", enableDebugLog: false, }, frpcConfigPath: path.join(process.cwd(), 'frp/frpc.toml') //根目录下文件夹frp中的frpc.toml };

var jobExecutor = new JobExecutor(config);

//任务注册 jobExecutor.register("demoJobHandler", async (args) => {

for (let i = 1; i < 10; i++) {
    await new Promise((resolve, reject) => {
        setTimeout(resolve, 888);
    })
}

return { result: 'return value' };

})

//批量任务注册 const batchJob = [ [ "demoJobHandler1", async (args) => { for (let i = 1; i < 10; i++) { await new Promise((resolve, reject) => { setTimeout(resolve, 888); }) }

        return { result: 'return value' };
    }
],
   [
    "demoJobHandler2",
    async (args) => {
        for (let i = 1; i < 10; i++) {
            await new Promise((resolve, reject) => {
                setTimeout(resolve, 888);
            })
        }

        return { result: 'return value' };
    }
]

]

jobExecutor.registerBatch(batchJob);