36 lines
1.3 KiB
JavaScript
36 lines
1.3 KiB
JavaScript
const memory = require('./memory.js'); // Scheduler memory
|
|
|
|
module.exports = async function() {
|
|
try {
|
|
const allTasks = memory.getAllTasks();
|
|
|
|
// Build the return object with task status
|
|
const tasksStatus = {};
|
|
for (const name in allTasks) {
|
|
const t = allTasks[name];
|
|
tasksStatus[name] = {
|
|
active: t.active, // whether the task is currently marked active
|
|
oneTime: t.oneTime, // one-time or recurring
|
|
intervalInSec: t.intervalInSec,
|
|
lastRun: t.lastRun, // last execution timestamp
|
|
nextRun: t.nextRun, // next scheduled execution timestamp
|
|
error: t.error, // last error if occurred
|
|
action: t.action // linked action file
|
|
};
|
|
}
|
|
|
|
// Determine if service is online (any task has a timer running)
|
|
const online = Object.values(allTasks).some(t => t.timer);
|
|
|
|
return {
|
|
online: online,
|
|
tasks: tasksStatus
|
|
};
|
|
} catch (err) {
|
|
console.error('Failed to retrieve scheduler status:', err);
|
|
return {
|
|
online: false,
|
|
tasks: {}
|
|
};
|
|
}
|
|
}; |