同步操作将从 yitter/多语言新雪花算法(SnowFlake IdGenerator) 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/*** @description:* @author: bubao* @date: 2021年04月27日 23:38:30* @last author: bubao* @last edit time: 2021年04月28日 10:35:20*/const Redis = require("ioredis");const { spawn } = require("child_process");const config = require("../env.config.js");const redis = new Redis(config);//保存被子进程实例数组var workers = {};//这里的被子进程理论上可以无限多// var appsPath = [__dirname+'/service/clickService.js',__dirname+'/service/showService.js'];var createWorker = function (appPath, i) {//保存spawn返回的进程实例var worker = spawn('node', [appPath, i]);//监听子进程exit事件worker.on('exit', async function () {console.info('worker:' + worker.pid + 'exited');delete workers[worker.pid];// createWorker(appPath);if (Object.keys(workers).length === 0) {console.log(await redis.scard('setTest'));await redis.del("setTest");redis.end();}});workers[worker.pid] = worker;console.info('create worker:' + worker.pid);};redis.del("setTest").then(() => {//启动所有子进程for (var i = 10; i > 0; i--) {createWorker(__dirname + '/test.js', i);}});//父进程退出时杀死所有子进程process.on('exit', async function () {console.info('parent exit.');for (var pid in workers) {workers[pid].kill('SIGHUP');}if (Object.keys(workers).length===0&&redis.status!=="end") {console.log(await redis.scard('setTest'));await redis.del("setTest");redis.end();}});
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。