autoloop / apps /server /src /queue /index.ts
shubhjn's picture
Deploy AutoLoop Server to Hugging Face
a6b6c66
import { Queue, Worker } from 'bullmq';
import { redisConnection } from '../config/redis';
import { automationEngine } from '../automation/engine';
export const incomingQueue = new Queue('incoming-messages', {
connection: redisConnection,
});
export const initWorkers = () => {
const worker = new Worker(
'incoming-messages',
async (job) => {
console.log(`Processing job ${job.id} of type ${job.name}`);
try {
if (job.name === 'webhook-event') {
await automationEngine.processEvent(job.data);
} else if (job.name === 'process-queued-event') {
await automationEngine.processQueuedEvent(job.data.eventId);
}
} catch (error) {
console.error(`Error processing job ${job.id}:`, error);
throw error;
}
},
{
connection: redisConnection,
concurrency: 5,
}
);
worker.on('completed', (job) => {
console.log(`Job ${job.id} completed`);
});
worker.on('failed', (job, err) => {
console.error(`Job ${job?.id} failed:`, err);
});
return worker;
};