mirror of
https://github.com/whyour/qinglong.git
synced 2026-09-16 20:25:44 +08:00
37 lines
1002 B
TypeScript
37 lines
1002 B
TypeScript
import { spawn } from 'cross-spawn';
|
|
import { runWithCpuLimit } from "./pLimit";
|
|
import Logger from '../loaders/logger';
|
|
|
|
export function runCron(cmd: string): Promise<number> {
|
|
return runWithCpuLimit(() => {
|
|
return new Promise(async (resolve: any) => {
|
|
Logger.silly('运行命令: ' + cmd);
|
|
|
|
const cp = spawn(cmd, { shell: '/bin/bash' });
|
|
|
|
cp.stderr.on('data', (data) => {
|
|
Logger.info(
|
|
'[执行任务失败] %s,时间:%s, 错误信息:%j',
|
|
cmd,
|
|
new Date().toLocaleString(),
|
|
data.toString(),
|
|
);
|
|
});
|
|
cp.on('error', (err) => {
|
|
Logger.error(
|
|
'[创建任务失败] %s,时间:%s, 错误信息:%j',
|
|
cmd,
|
|
new Date().toLocaleString(),
|
|
err,
|
|
);
|
|
});
|
|
|
|
cp.on('close', async (code) => {
|
|
Logger.info(
|
|
`[任务退出] ${cmd} 进程id: ${cp.pid} 退出,退出码 ${code}`,
|
|
);
|
|
resolve();
|
|
});
|
|
});
|
|
})
|
|
} |