1
0
mirror of https://github.com/immich-app/immich.git synced 2024-12-24 10:37:28 +02:00

fix(server): add paused property to JobCountsDto (#2112)

This commit is contained in:
Michel Heusschen 2023-03-29 17:33:03 +02:00 committed by GitHub
parent 76a07a3ebc
commit eda9e580c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 28 additions and 62 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -4074,6 +4074,9 @@
},
"waiting": {
"type": "integer"
},
"paused": {
"type": "integer"
}
},
"required": [
@ -4081,7 +4084,8 @@
"completed",
"failed",
"delayed",
"waiting"
"waiting",
"paused"
]
},
"AllJobStatusResponseDto": {

View File

@ -15,6 +15,7 @@ export interface JobCounts {
failed: number;
delayed: number;
waiting: number;
paused: number;
}
export type JobItem =

View File

@ -23,6 +23,7 @@ describe(JobService.name, () => {
failed: 1,
delayed: 1,
waiting: 1,
paused: 1,
});
await expect(sut.getAllJobsStatus()).resolves.toEqual({
@ -32,6 +33,7 @@ describe(JobService.name, () => {
delayed: 1,
failed: 1,
waiting: 1,
paused: 1,
},
'clip-encoding-queue': {
active: 1,
@ -39,6 +41,7 @@ describe(JobService.name, () => {
delayed: 1,
failed: 1,
waiting: 1,
paused: 1,
},
'metadata-extraction-queue': {
active: 1,
@ -46,6 +49,7 @@ describe(JobService.name, () => {
delayed: 1,
failed: 1,
waiting: 1,
paused: 1,
},
'object-tagging-queue': {
active: 1,
@ -53,6 +57,7 @@ describe(JobService.name, () => {
delayed: 1,
failed: 1,
waiting: 1,
paused: 1,
},
'search-queue': {
active: 1,
@ -60,6 +65,7 @@ describe(JobService.name, () => {
delayed: 1,
failed: 1,
waiting: 1,
paused: 1,
},
'storage-template-migration-queue': {
active: 1,
@ -67,6 +73,7 @@ describe(JobService.name, () => {
delayed: 1,
failed: 1,
waiting: 1,
paused: 1,
},
'thumbnail-generation-queue': {
active: 1,
@ -74,6 +81,7 @@ describe(JobService.name, () => {
delayed: 1,
failed: 1,
waiting: 1,
paused: 1,
},
'video-conversion-queue': {
active: 1,
@ -81,6 +89,7 @@ describe(JobService.name, () => {
delayed: 1,
failed: 1,
waiting: 1,
paused: 1,
},
});
});

View File

@ -12,6 +12,8 @@ export class JobCountsDto {
delayed!: number;
@ApiProperty({ type: 'integer' })
waiting!: number;
@ApiProperty({ type: 'integer' })
paused!: number;
}
export class AllJobStatusResponseDto implements Record<QueueName, JobCountsDto> {

View File

@ -10,7 +10,7 @@ import {
} from '@app/domain';
import { InjectQueue } from '@nestjs/bull';
import { Logger } from '@nestjs/common';
import { Queue } from 'bull';
import { Queue, type JobCounts as BullJobCounts } from 'bull';
export class JobRepository implements IJobRepository {
private logger = new Logger(JobRepository.name);
@ -54,7 +54,9 @@ export class JobRepository implements IJobRepository {
}
getJobCounts(name: QueueName): Promise<JobCounts> {
return this.queueMap[name].getJobCounts();
// Typecast needed because the `paused` key is missing from Bull's
// type definition. Can be removed once fixed upstream.
return this.queueMap[name].getJobCounts() as Promise<BullJobCounts & { paused: number }>;
}
async queue(item: JobItem): Promise<void> {

View File

@ -6,7 +6,7 @@
"packages": {
"": {
"name": "immich",
"version": "1.51.0",
"version": "1.52.0",
"license": "UNLICENSED",
"dependencies": {
"@babel/runtime": "^7.20.13",
@ -60,7 +60,6 @@
"@openapitools/openapi-generator-cli": "2.5.1",
"@types/archiver": "^5.3.1",
"@types/bcrypt": "^5.0.0",
"@types/bull": "^3.15.9",
"@types/cookie-parser": "^1.4.3",
"@types/cron": "^2.0.0",
"@types/express": "^4.17.13",
@ -2511,16 +2510,6 @@
"@types/node": "*"
}
},
"node_modules/@types/bull": {
"version": "3.15.9",
"resolved": "https://registry.npmjs.org/@types/bull/-/bull-3.15.9.tgz",
"integrity": "sha512-MPUcyPPQauAmynoO3ezHAmCOhbB0pWmYyijr/5ctaCqhbKWsjW0YCod38ZcLzUBprosfZ9dPqfYIcfdKjk7RNQ==",
"dev": true,
"dependencies": {
"@types/ioredis": "*",
"@types/redis": "^2.8.0"
}
},
"node_modules/@types/component-emitter": {
"version": "1.2.11",
"resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz",
@ -2671,15 +2660,6 @@
"@types/through": "*"
}
},
"node_modules/@types/ioredis": {
"version": "4.28.8",
"resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.28.8.tgz",
"integrity": "sha512-mULOyO2smtvkE1zmzRRA4P0+1UjEqusi014kXOL1q3CY0RgqkR5/wKvv+vAJbPw2Q66wPyylKeevUy+m/FaRMg==",
"dev": true,
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/istanbul-lib-coverage": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
@ -2801,15 +2781,6 @@
"integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==",
"dev": true
},
"node_modules/@types/redis": {
"version": "2.8.32",
"resolved": "https://registry.npmjs.org/@types/redis/-/redis-2.8.32.tgz",
"integrity": "sha512-7jkMKxcGq9p242exlbsVzuJb57KqHRhNl4dHoQu2Y5v9bCAbtIXXH0R3HleSQW4CTOqpHIYUW3t6tpUj4BVQ+w==",
"dev": true,
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/semver": {
"version": "7.3.13",
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
@ -13471,16 +13442,6 @@
"@types/node": "*"
}
},
"@types/bull": {
"version": "3.15.9",
"resolved": "https://registry.npmjs.org/@types/bull/-/bull-3.15.9.tgz",
"integrity": "sha512-MPUcyPPQauAmynoO3ezHAmCOhbB0pWmYyijr/5ctaCqhbKWsjW0YCod38ZcLzUBprosfZ9dPqfYIcfdKjk7RNQ==",
"dev": true,
"requires": {
"@types/ioredis": "*",
"@types/redis": "^2.8.0"
}
},
"@types/component-emitter": {
"version": "1.2.11",
"resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz",
@ -13631,15 +13592,6 @@
"@types/through": "*"
}
},
"@types/ioredis": {
"version": "4.28.8",
"resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.28.8.tgz",
"integrity": "sha512-mULOyO2smtvkE1zmzRRA4P0+1UjEqusi014kXOL1q3CY0RgqkR5/wKvv+vAJbPw2Q66wPyylKeevUy+m/FaRMg==",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"@types/istanbul-lib-coverage": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
@ -13761,15 +13713,6 @@
"integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==",
"dev": true
},
"@types/redis": {
"version": "2.8.32",
"resolved": "https://registry.npmjs.org/@types/redis/-/redis-2.8.32.tgz",
"integrity": "sha512-7jkMKxcGq9p242exlbsVzuJb57KqHRhNl4dHoQu2Y5v9bCAbtIXXH0R3HleSQW4CTOqpHIYUW3t6tpUj4BVQ+w==",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"@types/semver": {
"version": "7.3.13",
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",

View File

@ -88,7 +88,6 @@
"@openapitools/openapi-generator-cli": "2.5.1",
"@types/archiver": "^5.3.1",
"@types/bcrypt": "^5.0.0",
"@types/bull": "^3.15.9",
"@types/cookie-parser": "^1.4.3",
"@types/cron": "^2.0.0",
"@types/express": "^4.17.13",

View File

@ -1284,6 +1284,12 @@ export interface JobCountsDto {
* @memberof JobCountsDto
*/
'waiting': number;
/**
*
* @type {number}
* @memberof JobCountsDto
*/
'paused': number;
}
/**
*