MCPcopy Create free account
hub / github.com/TeleBoxOrg/TeleBox_Plugins / scheduleTask

Function scheduleTask

sum/sum.ts:790–826  ·  view source on GitHub ↗
(task: SummaryTask)

Source from the content-addressed store, hash-verified

788 } catch (e: any) {
789 return { success: false, message: `总结失败: ${e?.message || e}` };
790 }
791}
792
793// 调度任务
794async function scheduleTask(task: SummaryTask) {
795 const key = makeCronKey(task.id);
796 if (task.disabled || cronManager.has(key)) return;
797
798 console.log(`[sum] 注册任务 ${task.id}: ${task.cron}`);
799
800 cronManager.set(key, task.cron, async () => {
801 console.log(`[sum] 开始执行任务 ${task.id}`);
802
803 const db = await getDB();
804 const idx = db.data.tasks.findIndex((t: SummaryTask) => t.id === task.id);
805 const now = Date.now();
806
807 try {
808 const result = await executeSummary(task);
809
810 if (idx >= 0) {
811 db.data.tasks[idx].lastRunAt = String(now);
812 if (result.success) {
813 db.data.tasks[idx].lastResult = result.message;
814 db.data.tasks[idx].lastError = undefined;
815 } else {
816 db.data.tasks[idx].lastError = result.message;
817 }
818 await db.write();
819 }
820 console.log(`[sum] 任务 ${task.id} 执行完成: ${result.success ? '成功' : '失败'}`);
821 } catch (e: any) {
822 console.error(`[sum] 任务 ${task.id} 执行失败:`, e);
823 if (idx >= 0) {
824 db.data.tasks[idx].lastRunAt = String(now);
825 db.data.tasks[idx].lastError = String(e?.message || e);
826 await db.write();
827 }
828 }
829 });

Callers 2

bootstrapTasksFunction · 0.70
SummaryPluginClass · 0.70

Calls 6

executeSummaryFunction · 0.85
writeMethod · 0.80
errorMethod · 0.80
makeCronKeyFunction · 0.70
getDBFunction · 0.70
setMethod · 0.45

Tested by

no test coverage detected