1
This commit is contained in:
@@ -306,9 +306,32 @@ class ScheduledJobs {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 为每个设备发送任务状态摘要
|
// 离线阈值:3分钟
|
||||||
|
const offlineThreshold = 3 * 60 * 1000; // 3分钟
|
||||||
|
const now = Date.now();
|
||||||
|
|
||||||
|
// 为每个在线设备发送任务状态摘要
|
||||||
for (const account of accounts) {
|
for (const account of accounts) {
|
||||||
const sn_code = account.sn_code;
|
const sn_code = account.sn_code;
|
||||||
|
|
||||||
|
// 检查设备是否在线
|
||||||
|
const device = deviceManager.devices.get(sn_code);
|
||||||
|
|
||||||
|
if (!device) {
|
||||||
|
// 设备从未发送过心跳,视为离线,跳过
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查最后心跳时间
|
||||||
|
const lastHeartbeat = device.lastHeartbeat || 0;
|
||||||
|
const isOnline = device.isOnline && (now - lastHeartbeat < offlineThreshold);
|
||||||
|
|
||||||
|
if (!isOnline) {
|
||||||
|
// 设备离线,跳过
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设备在线,发送任务状态摘要
|
||||||
try {
|
try {
|
||||||
await this.taskQueue.sendTaskStatusSummary(sn_code);
|
await this.taskQueue.sendTaskStatusSummary(sn_code);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -540,7 +563,8 @@ class ScheduledJobs {
|
|||||||
// 如果存在上次投递记录,检查是否已经过了间隔时间
|
// 如果存在上次投递记录,检查是否已经过了间隔时间
|
||||||
if (lastDeliverTask && lastDeliverTask.endTime) {
|
if (lastDeliverTask && lastDeliverTask.endTime) {
|
||||||
const lastDeliverTime = new Date(lastDeliverTask.endTime);
|
const lastDeliverTime = new Date(lastDeliverTask.endTime);
|
||||||
const elapsedTime = now.getTime() - lastDeliverTime.getTime();
|
|
||||||
|
const elapsedTime = new Date().getTime() - lastDeliverTime.getTime();
|
||||||
|
|
||||||
if (elapsedTime < interval_ms) {
|
if (elapsedTime < interval_ms) {
|
||||||
const remainingMinutes = Math.ceil((interval_ms - elapsedTime) / (60 * 1000));
|
const remainingMinutes = Math.ceil((interval_ms - elapsedTime) / (60 * 1000));
|
||||||
|
|||||||
Reference in New Issue
Block a user