fp/services/worker/src/workers/generalWorker.ts
2025-11-26 03:34:32 -08:00

55 lines
1.6 KiB
TypeScript

// generalWorker
import { Worker } from 'bullmq';
import { connection } from '../../.config/bullmq.config.ts';
import { presignAllMuxAssets, presignMuxAsset } from '../processors/presignMuxAssets.ts';
import { copyV1VideoAll } from '../processors/copyV1VideoAll.ts';
import { copyV2ThumbToV3 } from '../processors/copyV2ThumbToV3.ts';
import { copyV1VideoToV3 } from '../processors/copyV1VideoToV3.ts';
import { createTorrent } from '../processors/createTorrent.ts';
import { analyzeAudio } from '../processors/analyzeAudio.ts';
import { findWork } from '../processors/findWork.ts';
import { getAnnounceUrlDetails } from '../processors/getAnnounceUrlDetails.ts';
new Worker(
'generalQueue',
async (job) => {
console.log('generalWorker. we got a job on the generalQueue.', job.data, job.name);
switch (job.name) {
case 'getAnnounceUrlDetails':
return await getAnnounceUrlDetails(job);
case 'findWork':
return await findWork(job);
case 'copyV1VideoAll':
return await copyV1VideoAll(job);
case 'copyV1VideoToV3':
return await copyV1VideoToV3(job);
case 'presignAllMuxAssets':
return await presignAllMuxAssets(job);
case 'presignMuxAsset':
return await presignMuxAsset(job);
case 'copyV2ThumbToV3':
return await copyV2ThumbToV3(job);
case 'createTorrent':
return await createTorrent(job);
case 'analyzeAudio':
return await analyzeAudio(job);
default:
throw new Error(`Unknown job name: ${job.name}`);
}
},
{ connection }
);
console.log('generalWorker is running...');