enhance(backend): BullMQの廃止されたRepeatableからJob Schedulersに移行
This commit is contained in:
parent
f2a23fb55e
commit
35888eb8f4
|
@ -17,6 +17,7 @@ import { bindThis } from '@/decorators.js';
|
||||||
import type { Antenna } from '@/server/api/endpoints/i/import-antennas.js';
|
import type { Antenna } from '@/server/api/endpoints/i/import-antennas.js';
|
||||||
import { ApRequestCreator } from '@/core/activitypub/ApRequestService.js';
|
import { ApRequestCreator } from '@/core/activitypub/ApRequestService.js';
|
||||||
import { type SystemWebhookPayload } from '@/core/SystemWebhookService.js';
|
import { type SystemWebhookPayload } from '@/core/SystemWebhookService.js';
|
||||||
|
import type { Packed } from '@/misc/json-schema.js';
|
||||||
import { type UserWebhookPayload } from './UserWebhookService.js';
|
import { type UserWebhookPayload } from './UserWebhookService.js';
|
||||||
import type {
|
import type {
|
||||||
DbJobData,
|
DbJobData,
|
||||||
|
@ -39,7 +40,6 @@ import type {
|
||||||
} from './QueueModule.js';
|
} from './QueueModule.js';
|
||||||
import type httpSignature from '@peertube/http-signature';
|
import type httpSignature from '@peertube/http-signature';
|
||||||
import type * as Bull from 'bullmq';
|
import type * as Bull from 'bullmq';
|
||||||
import type { Packed } from '@/misc/json-schema.js';
|
|
||||||
|
|
||||||
export const QUEUE_TYPES = [
|
export const QUEUE_TYPES = [
|
||||||
'system',
|
'system',
|
||||||
|
@ -69,61 +69,85 @@ export class QueueService {
|
||||||
@Inject('queue:userWebhookDeliver') public userWebhookDeliverQueue: UserWebhookDeliverQueue,
|
@Inject('queue:userWebhookDeliver') public userWebhookDeliverQueue: UserWebhookDeliverQueue,
|
||||||
@Inject('queue:systemWebhookDeliver') public systemWebhookDeliverQueue: SystemWebhookDeliverQueue,
|
@Inject('queue:systemWebhookDeliver') public systemWebhookDeliverQueue: SystemWebhookDeliverQueue,
|
||||||
) {
|
) {
|
||||||
this.systemQueue.add('tickCharts', {
|
this.systemQueue.upsertJobScheduler('tickCharts', {
|
||||||
|
pattern: '55 * * * *',
|
||||||
}, {
|
}, {
|
||||||
repeat: { pattern: '55 * * * *' },
|
name: 'tickCharts',
|
||||||
removeOnComplete: 10,
|
opts: {
|
||||||
removeOnFail: 30,
|
removeOnComplete: 10,
|
||||||
|
removeOnFail: 30,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
this.systemQueue.add('resyncCharts', {
|
this.systemQueue.upsertJobScheduler('resyncCharts', {
|
||||||
|
pattern: '0 0 * * *',
|
||||||
}, {
|
}, {
|
||||||
repeat: { pattern: '0 0 * * *' },
|
name: 'resyncCharts',
|
||||||
removeOnComplete: 10,
|
opts: {
|
||||||
removeOnFail: 30,
|
removeOnComplete: 10,
|
||||||
|
removeOnFail: 30,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
this.systemQueue.add('cleanCharts', {
|
this.systemQueue.upsertJobScheduler('cleanCharts', {
|
||||||
|
pattern: '0 0 * * *',
|
||||||
}, {
|
}, {
|
||||||
repeat: { pattern: '0 0 * * *' },
|
name: 'cleanCharts',
|
||||||
removeOnComplete: 10,
|
opts: {
|
||||||
removeOnFail: 30,
|
removeOnComplete: 10,
|
||||||
|
removeOnFail: 30,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
this.systemQueue.add('aggregateRetention', {
|
this.systemQueue.upsertJobScheduler('aggregateRetention', {
|
||||||
|
pattern: '0 0 * * *',
|
||||||
}, {
|
}, {
|
||||||
repeat: { pattern: '0 0 * * *' },
|
name: 'aggregateRetention',
|
||||||
removeOnComplete: 10,
|
opts: {
|
||||||
removeOnFail: 30,
|
removeOnComplete: 10,
|
||||||
|
removeOnFail: 30,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
this.systemQueue.add('clean', {
|
this.systemQueue.upsertJobScheduler('clean', {
|
||||||
|
pattern: '0 0 * * *',
|
||||||
}, {
|
}, {
|
||||||
repeat: { pattern: '0 0 * * *' },
|
name: 'clean',
|
||||||
removeOnComplete: 10,
|
opts: {
|
||||||
removeOnFail: 30,
|
removeOnComplete: 10,
|
||||||
|
removeOnFail: 30,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
this.systemQueue.add('checkExpiredMutings', {
|
this.systemQueue.upsertJobScheduler('checkExpiredMutings', {
|
||||||
|
pattern: '*/5 * * * *',
|
||||||
}, {
|
}, {
|
||||||
repeat: { pattern: '*/5 * * * *' },
|
name: 'checkExpiredMutings',
|
||||||
removeOnComplete: 10,
|
opts: {
|
||||||
removeOnFail: 30,
|
removeOnComplete: 10,
|
||||||
|
removeOnFail: 30,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
this.systemQueue.add('bakeBufferedReactions', {
|
this.systemQueue.upsertJobScheduler('bakeBufferedReactions', {
|
||||||
|
pattern: '0 0 * * *',
|
||||||
}, {
|
}, {
|
||||||
repeat: { pattern: '0 0 * * *' },
|
name: 'bakeBufferedReactions',
|
||||||
removeOnComplete: 10,
|
opts: {
|
||||||
removeOnFail: 30,
|
removeOnComplete: 10,
|
||||||
|
removeOnFail: 30,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
this.systemQueue.add('checkModeratorsActivity', {
|
this.systemQueue.upsertJobScheduler('checkModeratorsActivity', {
|
||||||
}, {
|
|
||||||
// 毎時30分に起動
|
// 毎時30分に起動
|
||||||
repeat: { pattern: '30 * * * *' },
|
pattern: '30 * * * *',
|
||||||
removeOnComplete: 10,
|
}, {
|
||||||
removeOnFail: 30,
|
name: 'checkModeratorsActivity',
|
||||||
|
opts: {
|
||||||
|
removeOnComplete: 10,
|
||||||
|
removeOnFail: 30,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue