首页 > 解决方案 > Node-Schedule 在不同的进程上运行

问题描述

我正在使用node-schedule与 nodejs 一起做 cron 工作。这是我的代码:

import '../config';
import schedule from 'node-schedule';

import { startAssignment, closeAssignment } from '../course/schedule';

schedule.scheduleJob('*/1 * * * *', startAssignment);
schedule.scheduleJob('*/1 * * * *', closeAssignment);

我想知道两个计划的作业是在不同的进程上运行还是在相同的进程上运行?我尝试在 Linux 上使用

sudo ps -aux

它给了这个:

22032 0.0 0.0 4632 864 点/2 S+ 17:47 0:00 /bin/sh -c NODE_PATH=。babel-node app/schedule/index.js

这意味着它在同一个进程上运行。那么有什么方法可以让它们以不同的 pid 在不同的进程上运行?

为什么我需要它们在具有不同pid的不同进程上运行?因为当一个进程启动时,我想检查是否有类似的进程以相同的pid运行,所以我停止它们以防止可能占用服务器资源过多的重复进程。

谢谢你。我欣赏任何类型的文件。

标签: node.js

解决方案


您可以对节点中的多个进程使用 fork。

const { fork } = require('child_process');

https://itnext.io/multi-threading-and-multi-process-in-node-js-ffa5bb5cde98


推荐阅读