Commit 5f709334 Harvey

no message

1 个父辈 ae5e8339
FROM node:22-alpine
RUN apk add --no-cache tzdata && \
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone && \
apk del tzdata
RUN mkdir -p /app
WORKDIR /app
COPY ./package.json /app
COPY ./build /app/build
COPY ./config /app/config
RUN npm install -g cnpm
RUN cnpm install --production
CMD [ "node","build/index.js"]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const job_executor_1 = require("job-executor");
const hemera_1 = require("./hemera");
const config = require('../config');
(0, hemera_1.init)({ nats: config.nats, hemera: config.hemera });
var jobExecutor = new job_executor_1.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' };
jobExecutor.register("act", async (args) => {
return (0, hemera_1.act)(args, true);
});
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);
//# sourceMappingURL=index.js.map
\ No newline at end of file
......@@ -2,17 +2,6 @@ let config;
try {
config = JSON.parse(process.env.CONFIG);
} catch (e) {
// appType: "express",
// appDomain: "http://pd-service-info-task:8088/",
// port: 8088,
// xxlJob: {
// executorKey: "hemera-job",
// scheduleCenterUrl: "http://10.0.4.5:8080/xxl-job-admin",
// accessToken: "default_token",
// jobLogPath: "logs/job",
// enableDebugLog: false,
// },
const path = require("path");
config = {
......@@ -20,13 +9,20 @@ try {
appDomain: "http://10.0.1.92:17001/",
port: 8088,
xxlJob: {
executorKey: "job-ydn-zq", // 注:开发环境建议加后缀区分
executorKey: "job-executor-hemera",
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
frpcConfigPath: path.join(process.cwd(), "frp/frpc.toml"),
nats: {
servers: ["nats://ruser:T0pS3cr3t@pd-nats:4222"],
},
hemera: {
logLevel: "info",
},
};
}
......
#!/bin/bash
# 使用说明
# 1. 同目录下新建 pwd.txt 以保存腾讯云容器镜像访问密码,本文件不要提交到 git
# 密码和腾讯云账号ID在 https://console.cloud.tencent.com/tke2/registry/user?rid=1
# 2. 修改以下四行参数
cloudId='3035257033' #腾讯云账号ID
namespace='ydn.cl' #腾讯云镜像仓库命名空间
imageName='job-executor-hemera' #镜像名称
dockerfilePash='./Dockerfile' #指定当前根目录下构建的Dockerfile文件 例如: ./Dockerfile
# 3. 执行构建推送镜像命令
# sh 文件名称.sh 例如: sh job-executor-hemera.sh 版本号默认为 年月日时分秒
# sh 文件名称.sh 版本号 例如: sh job-executor-hemera.sh v1 版本号例如: 20210902v1
# -----------------------------------------------
version=`date '+%Y%m%d'` #镜像版本号, 默认当前年月日+ 参数
if [ ! -n "$1" ] ;then
version=`date '+%Y%m%d%H%M%S'`
else
version+=$1
fi
imageId=ccr.ccs.tencentyun.com/$namespace/$imageName:$version
echo "1. 开始拉取最新代码!"
npm config set registry https://registry.npm.taobao.org
git pull
echo "2. 准备构建镜像..."
docker build -f $dockerfilePash --platform linux/amd64 -t $imageId .
echo "3. 构建成功!"
echo "4. 准备登录到云仓库..."
cat pwd.txt | docker login --username=$cloudId --password-stdin ccr.ccs.tencentyun.com
echo "5. 准备上传镜像到云仓库..."
docker push $imageId
echo "6. 上传成功!"
echo "7. 删除本地原有镜像..."
docker rmi $imageId
echo "8. 一切OK..."
exit;
\ No newline at end of file
import { JobExecutor } from 'job-executor'
import { init, act } from './hemera'
const config = require('../config');
var jobExecutor = new JobExecutor(config);
jobExecutor.register("demoJobHandler", async (args) => {
//启动hemera
init({ nats: config.nats, hemera: config.hemera })
for (let i = 1; i < 10; i++) {
await new Promise((resolve, reject) => {
setTimeout(resolve, 888);
})
}
var jobExecutor = new JobExecutor(config);
return { result: 'return value' };
jobExecutor.register("act", async (args) => {
// {
// topic: 'account',
// cmd: 'queryUserDetail',
// data: { userid: id }
// }
return act(args, true);
})
\ No newline at end of file
//批量任务注册
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);
\ No newline at end of file
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!