修复运行命令api任务日志路径

This commit is contained in:
whyour 2023-05-04 10:25:04 +08:00
parent d8ae039b92
commit c84908d7fa
6 changed files with 34 additions and 21 deletions

View File

@ -164,24 +164,27 @@ export default (app: Router) => {
try {
const systemService = Container.get(SystemService);
const uniqPath = await getUniqPath(req.body.command);
const logTime = dayjs().format('YYYY-MM-DD-HH-mm-ss');
const logTime = dayjs().format('YYYY-MM-DD-HH-mm-ss-SSS');
const logPath = `${uniqPath}/${logTime}.log`;
res.setHeader('Content-type', 'application/octet-stream');
await systemService.run(req.body, {
onEnd: async (cp, endTime, diff) => {
res.end();
await systemService.run(
{ ...req.body, logPath },
{
onEnd: async (cp, endTime, diff) => {
res.end();
},
onError: async (message: string) => {
res.write(`\n${message}`);
const absolutePath = await handleLogPath(logPath);
fs.appendFileSync(absolutePath, `\n${message}`);
},
onLog: async (message: string) => {
res.write(`\n${message}`);
const absolutePath = await handleLogPath(logPath);
fs.appendFileSync(absolutePath, `\n${message}`);
},
},
onError: async (message: string) => {
res.write(`\n${message}`);
const absolutePath = await handleLogPath(logPath);
fs.appendFileSync(absolutePath, `\n${message}`);
},
onLog: async (message: string) => {
res.write(`\n${message}`);
const absolutePath = await handleLogPath(logPath);
fs.appendFileSync(absolutePath, `\n${message}`);
},
});
);
} catch (e) {
return next(e);
}

View File

@ -13,7 +13,7 @@ const check = async (
const res = await promiseExec(
`curl -sf http://localhost:${config.port}/api/system`,
);
console.log(res);
if (res.includes('200')) {
return callback(null, { status: 1 });
}

View File

@ -177,11 +177,17 @@ export default class SystemService {
}
}
public async run({ command }: { command: string }, callback: TaskCallbacks) {
public async run(
{ command, logPath }: { command: string; logPath: string },
callback: TaskCallbacks,
) {
if (!command.startsWith(TASK_COMMAND)) {
command = `${TASK_COMMAND} ${command}`;
}
this.scheduleService.runTask(`real_time=true ${command}`, callback);
this.scheduleService.runTask(
`real_log_path=${logPath} real_time=true ${command}`,
callback,
);
}
public async stop({ command }: { command: string }) {

View File

@ -82,6 +82,7 @@ start_public() {
main() {
echo -e "=====> 开始检测"
rm -rf ~/.pm2
npm i -g pnpm
patch_version
pnpm add -g pm2 tsx

View File

@ -65,6 +65,11 @@ handle_log_path() {
[[ $log_dir_tmp_path ]] && log_dir_tmp="${log_dir_tmp_path}_${log_dir_tmp}"
log_dir="${log_dir_tmp%.*}${suffix}"
log_path="$log_dir/$log_time.log"
if [[ $real_log_path != "${log_path}" ]]; then
log_path="$real_log_path"
fi
cmd=">> $dir_log/$log_path 2>&1"
make_dir "$dir_log/$log_dir"
if [[ "$show_log" == "true" ]]; then

View File

@ -13,8 +13,6 @@ const Error = () => {
const [data, setData] = useState('暂无日志');
const retryTimes = useRef(1);
console.log(retryTimes.current);
const getLog = (needLoading: boolean = true) => {
needLoading && setLoading(true);
request
@ -24,9 +22,9 @@ const Error = () => {
return reloadUser();
}
if (retryTimes.current > 3) {
setData(error?.details);
return;
}
setData(error.details);
retryTimes.current += 1;
setTimeout(() => {
reloadUser();