mirror of
https://github.com/immich-app/immich.git
synced 2025-01-06 11:56:46 +01:00
4a5b8c3770
* feat(server): Enqueue jobs in bulk The Job Repository now has a `queueAll` method, that enqueues messages in bulk (using BullMQ's [`addBulk`](https://docs.bullmq.io/guide/queues/adding-bulks)), improving performance when many jobs must be enqueued within the same operation. Primary change is in `src/domain/job/job.service.ts`, and other services have been refactored to use `queueAll` when useful. As a simple local benchmark, triggering a full thumbnail generation process over a library of ~1,200 assets and ~350 faces went from **~600ms** to **~250ms**. * fix: Review feedback
19 lines
568 B
TypeScript
19 lines
568 B
TypeScript
import { IJobRepository } from '@app/domain';
|
|
|
|
export const newJobRepositoryMock = (): jest.Mocked<IJobRepository> => {
|
|
return {
|
|
addHandler: jest.fn(),
|
|
addCronJob: jest.fn(),
|
|
deleteCronJob: jest.fn(),
|
|
updateCronJob: jest.fn(),
|
|
setConcurrency: jest.fn(),
|
|
empty: jest.fn(),
|
|
pause: jest.fn(),
|
|
resume: jest.fn(),
|
|
queue: jest.fn().mockImplementation(() => Promise.resolve()),
|
|
queueAll: jest.fn().mockImplementation(() => Promise.resolve()),
|
|
getQueueStatus: jest.fn(),
|
|
getJobCounts: jest.fn(),
|
|
clear: jest.fn(),
|
|
};
|
|
};
|