speccore 5.55.1 → 5.55.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule-engine.d.ts","sourceRoot":"","sources":["../../src/core/schedule-engine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schedule-engine.d.ts","sourceRoot":"","sources":["../../src/core/schedule-engine.ts"],"names":[],"mappings":"AA0DA;;;GAGG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAuBrC;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAgBpC;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAiCnD;AA6CD;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAatF"}
|
|
@@ -50,24 +50,53 @@ const POLL_INTERVAL = 30000; // 30 秒轮询一次
|
|
|
50
50
|
/** 守护进程锁文件 */
|
|
51
51
|
const LOCK_FILE = '.speccore/local/schedule.lock';
|
|
52
52
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
53
|
+
* 查找 speccore daemon 进程(跨平台)
|
|
54
|
+
* macOS/Linux: pgrep -f
|
|
55
|
+
* Windows: tasklist /FI "IMAGENAME eq node.exe" + wmic 查命令行
|
|
55
56
|
*/
|
|
56
|
-
function
|
|
57
|
-
|
|
57
|
+
function findDaemonPids() {
|
|
58
|
+
const myPid = process.pid;
|
|
59
|
+
const pids = [];
|
|
58
60
|
try {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
if (process.platform === 'win32') {
|
|
62
|
+
// Windows: 用 wmic 查命令行
|
|
63
|
+
const wmicOut = (0, child_process_1.execSync)('wmic process where "name=\'node.exe\'" get ProcessId,CommandLine /format:csv', { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] });
|
|
64
|
+
for (const line of wmicOut.split('\n')) {
|
|
65
|
+
if (line.includes('schedule daemon') && line.includes('--foreground')) {
|
|
66
|
+
const m = line.match(/,(\d+)\s*$/);
|
|
67
|
+
if (m) {
|
|
68
|
+
const pid = parseInt(m[1]);
|
|
69
|
+
if (pid !== myPid)
|
|
70
|
+
pids.push(pid);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
// macOS/Linux: pgrep
|
|
77
|
+
const result = (0, child_process_1.execSync)(`pgrep -f "speccore schedule daemon"`, { encoding: 'utf-8' });
|
|
78
|
+
for (const line of result.trim().split('\n')) {
|
|
79
|
+
const pid = parseInt(line);
|
|
80
|
+
if (!isNaN(pid) && pid !== myPid)
|
|
81
|
+
pids.push(pid);
|
|
82
|
+
}
|
|
67
83
|
}
|
|
68
84
|
}
|
|
69
85
|
catch {
|
|
70
|
-
//
|
|
86
|
+
// 没找到
|
|
87
|
+
}
|
|
88
|
+
return pids;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* 启动调度守护进程
|
|
92
|
+
* 作为独立子进程运行,父进程立即返回
|
|
93
|
+
*/
|
|
94
|
+
function startDaemon() {
|
|
95
|
+
// 检查是否已在运行
|
|
96
|
+
const existing = findDaemonPids();
|
|
97
|
+
if (existing.length > 0) {
|
|
98
|
+
logger_1.logger.warn(`Schedule daemon is already running (PID: ${existing.join(', ')})`);
|
|
99
|
+
return false;
|
|
71
100
|
}
|
|
72
101
|
// 以 detached 模式启动子进程
|
|
73
102
|
const child = (0, child_process_1.spawn)(process.execPath, [(0, path_1.join)(__dirname, '..', '..', 'dist', 'cli.js'), 'schedule', 'daemon', '--foreground'], {
|
|
@@ -84,25 +113,21 @@ function startDaemon() {
|
|
|
84
113
|
* 停止调度守护进程
|
|
85
114
|
*/
|
|
86
115
|
function stopDaemon() {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const pids = result.trim().split('\n').filter(Boolean);
|
|
90
|
-
const myPid = process.pid.toString();
|
|
91
|
-
const others = pids.filter(p => p !== myPid);
|
|
92
|
-
if (others.length === 0) {
|
|
93
|
-
logger_1.logger.warn('No schedule daemon running');
|
|
94
|
-
return false;
|
|
95
|
-
}
|
|
96
|
-
for (const pid of others) {
|
|
97
|
-
process.kill(parseInt(pid), 'SIGTERM');
|
|
98
|
-
logger_1.logger.info(`Stopped daemon process (PID: ${pid})`);
|
|
99
|
-
}
|
|
100
|
-
return true;
|
|
101
|
-
}
|
|
102
|
-
catch {
|
|
116
|
+
const pids = findDaemonPids();
|
|
117
|
+
if (pids.length === 0) {
|
|
103
118
|
logger_1.logger.warn('No schedule daemon running');
|
|
104
119
|
return false;
|
|
105
120
|
}
|
|
121
|
+
for (const pid of pids) {
|
|
122
|
+
try {
|
|
123
|
+
process.kill(pid, 'SIGTERM');
|
|
124
|
+
logger_1.logger.info(`Stopped daemon process (PID: ${pid})`);
|
|
125
|
+
}
|
|
126
|
+
catch (e) {
|
|
127
|
+
logger_1.logger.warn(`Failed to stop PID ${pid}: ${e.message}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return true;
|
|
106
131
|
}
|
|
107
132
|
/**
|
|
108
133
|
* 守护进程主循环(在 daemon --foreground 子进程中运行)
|
|
@@ -182,16 +207,7 @@ async function executeScheduledTask(task) {
|
|
|
182
207
|
* 检查守护进程是否在运行
|
|
183
208
|
*/
|
|
184
209
|
function isDaemonRunning() {
|
|
185
|
-
|
|
186
|
-
const result = (0, child_process_1.execSync)(`pgrep -f "speccore schedule daemon"`, { encoding: 'utf-8' });
|
|
187
|
-
const pids = result.trim().split('\n').filter(Boolean);
|
|
188
|
-
const myPid = process.pid.toString();
|
|
189
|
-
const others = pids.filter(p => p !== myPid);
|
|
190
|
-
return others.length > 0;
|
|
191
|
-
}
|
|
192
|
-
catch {
|
|
193
|
-
return false;
|
|
194
|
-
}
|
|
210
|
+
return findDaemonPids().length > 0;
|
|
195
211
|
}
|
|
196
212
|
/**
|
|
197
213
|
* 检查守护进程状态并显示
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule-engine.js","sourceRoot":"","sources":["../../src/core/schedule-engine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"schedule-engine.js","sourceRoot":"","sources":["../../src/core/schedule-engine.ts"],"names":[],"mappings":"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"}
|