EverydayTech Platform - Developer Reference
Complete Source Code Documentation - All Applications
Loading...
Searching...
No Matches
agentDeleteWorker.js
Go to the documentation of this file.
1// agentDeleteWorker.js - Redis-based agent deletion worker
2const pool = require('./db');
3const Redis = require('ioredis');
4const redisConfig = require('../config/redis');
5const redis = new Redis(redisConfig);
6
7/**
8 *
9 */
10async function checkAndDeleteAgents() {
11 const stream = redis.scanStream({ match: 'agent:delete:*' });
12 stream.on('data', async (keys) => {
13 for (const key of keys) {
14 const ttl = await redis.ttl(key);
15 if (ttl === -2) { // Key expired
16 const agent_uuid = key.split(':').pop();
17 try {
18 await pool.query('DELETE FROM agents WHERE agent_uuid = $1', [agent_uuid]);
19 console.log(`[AgentDeleteWorker] Deleted agent ${agent_uuid} from DB.`);
20 } catch (err) {
21 console.error(`[AgentDeleteWorker] Failed to delete agent ${agent_uuid}:`, err);
22 }
23 }
24 }
25 });
26}
27
28// Run every hour
29setInterval(checkAndDeleteAgents, 60 * 60 * 1000);
30console.log('[AgentDeleteWorker] Started agent deletion worker.');