1.package.json配置
"dependencies": { "job-executor": "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);