staff_data/apps/server/src/queue/worker/file.processor.ts

23 lines
902 B
TypeScript
Raw Normal View History

2025-01-03 09:24:46 +08:00
import { Job } from 'bullmq';
import { Logger } from '@nestjs/common';
import { QueueJobType } from '../types';
import { ResourceProcessingPipeline } from '@server/models/resource/pipe/resource.pipeline';
import { ImageProcessor } from '@server/models/resource/processor/ImageProcessor';
2025-01-08 00:52:11 +08:00
import { VideoProcessor } from '@server/models/resource/processor/VideoProcessor';
2025-01-03 09:24:46 +08:00
const logger = new Logger('FileProcessorWorker');
const pipeline = new ResourceProcessingPipeline()
2025-01-27 22:43:31 +08:00
.addProcessor(new ImageProcessor())
.addProcessor(new VideoProcessor());
2025-01-03 09:24:46 +08:00
export default async function processJob(job: Job<any, any, QueueJobType>) {
2025-01-27 22:43:31 +08:00
if (job.name === QueueJobType.FILE_PROCESS) {
console.log('job', job);
const { resource } = job.data;
if (!resource) {
throw new Error('No resource provided in job data');
2025-01-03 09:24:46 +08:00
}
2025-01-27 22:43:31 +08:00
const result = await pipeline.execute(resource);
return result;
}
}