Skip to main content

electron/managers/MonitorManager

Orchestrates all monitoring operations for sites and monitors, including scheduling, status checking, and lifecycle management across the Electron backend.

Remarks

Coordinates monitor lifecycle, scheduling, and event-driven updates for sites and monitors. All backend monitoring logic flows through this manager. Interacts with repositories, event bus, and service layer according to the repository and event-driven patterns.

Key responsibilities:

  • Monitor lifecycle management (create, start, stop, delete)
  • Scheduled monitoring with configurable intervals
  • Status checking and health monitoring for sites
  • Event emission for monitor state changes and status updates
  • Cache coordination for real-time monitor data access
  • Integration with enhanced monitoring services
  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global\_Objects/Error handling and recovery for failed monitoring operations
  • Transaction management for monitor database operations

Examples

const monitorManager = new MonitorManager({
eventBus,
siteRepository,
monitorRepository,
historyRepository,
databaseService,
cache,
});

// Start monitoring for a site
const monitor = await monitorManager.startMonitoring(siteId);

// Check status manually
const status = await monitorManager.checkSiteStatus(siteId);
// Listen for status updates
eventBus.onTyped("monitor:statusUpdated", (data) => {
console.log(`Site ${data.siteId} status: ${data.status}`);
});

// Monitor will emit events automatically
await monitorManager.startMonitoring(siteId);

Classes

Interfaces