修复定时器重复执行导致邮件重复发送问题
This commit is contained in:
xcy 2023-12-20 19:05:09 +08:00
parent dacd312bfe
commit 23e1941812

View File

@ -9,6 +9,7 @@ let uid2processId = {};
//订阅redis //订阅redis
let subscribeRedis: RedisClientType let subscribeRedis: RedisClientType
let firstPid = null; let firstPid = null;
//发布和可写redis复用原 setRedis 里的redisClient //发布和可写redis复用原 setRedis 里的redisClient
@ -43,14 +44,19 @@ export function clusterPublish(key: string, data: any) {
* N个进程中使 * N个进程中使
*/ */
export function clusterRunOnce(fun) { export function clusterRunOnce(fun) {
console.log(`${process.pid}环境变量pm_id===>${process.env.pm_id}`);
if (process.env.pm_id == null || process.env.pm_id === '0') { if (process.env.pm_id == null || process.env.pm_id === '0') {
//非pm2启动的或是pm2下启动的第一个进程 //非pm2启动的或是pm2下启动的第一个进程
console.log("run clusterRunOnce1 ===>", process.pid)
fun(); fun();
return; return;
} }
if(G.config.isG123)return;
if (firstPid == process.pid) { if (firstPid == process.pid) {
//pm2的其中一个进程 //pm2的其中一个进程
console.log("run clusterRunOnce2 ===>", process.pid)
fun(); fun();
return; return;
} }