Skip to content
This repository was archived by the owner on May 21, 2026. It is now read-only.

Commit b534be6

Browse files
committed
Merge branch 'feature/get-rid-of-agenda' into develop
2 parents c36c86e + d41a47c commit b534be6

19 files changed

Lines changed: 272 additions & 209 deletions

package-lock.json

Lines changed: 3 additions & 105 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
"@nestjs/platform-express": "10.2.7",
2727
"@nestjs/serve-static": "4.0.0",
2828
"@nestjs/swagger": "7.1.17",
29-
"agenda": "4.4.0",
3029
"axios": "1.6.2",
3130
"body-parser": "^1.20.0",
3231
"cookie-parser": "^1.4.6",

src/backend/app.module.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { FrontendProxyModule } from './frontend-proxy/frontend-proxy.module';
1818
import { MessageModule } from './message/message.module';
1919
import { PilotModule } from './pilot/pilot.module';
2020
import { PluginTokenModule } from './plugin-token/plugin-token.module';
21-
import { agendaProviders } from './schedule.module';
21+
import { ScheduleModule } from './schedule/schedule.module';
2222
import { UserModule } from './user/user.module';
2323
import { UtilsModule } from './utils/utils.module';
2424
import { VdgsModule } from './vdgs/vdgs.module';
@@ -54,8 +54,9 @@ const { frontendProxy } = getAppConfig();
5454
ConfigModule,
5555
PluginTokenModule,
5656
VdgsModule,
57+
ScheduleModule,
5758
],
58-
providers: [...databaseProviders, ...agendaProviders],
59+
providers: [...databaseProviders],
5960
exports: [...databaseProviders],
6061
})
6162
export class AppModule implements NestModule {

src/backend/cdm/cdm.module.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { Module, forwardRef } from '@nestjs/common';
22

33
import { AirportModule } from '../airport/airport.module';
44
import { PilotModule } from '../pilot/pilot.module';
5-
import { ScheduleModule } from '../schedule.module';
65
import { UtilsModule } from '../utils/utils.module';
76

87
import { CdmService } from './cdm.service';
@@ -14,7 +13,6 @@ import { CdmService } from './cdm.service';
1413
forwardRef(() => AirportModule),
1514
forwardRef(() => PilotModule),
1615
UtilsModule,
17-
ScheduleModule,
1816
],
1917
})
2018
export class CdmModule {}

src/backend/cdm/cdm.service.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import { Inject, Injectable, forwardRef } from '@nestjs/common';
2-
import Agenda from 'agenda';
32
import { mongo } from 'mongoose';
43

54
import { AirportService } from '../airport/airport.service';
65
import logger from '../logger';
76
import { PilotDocument } from '../pilot/pilot.model';
87
import { PilotService } from '../pilot/pilot.service';
9-
import { AGENDA_PROVIDER } from '../schedule.module';
8+
import { Schedule } from '../schedule/schedule.decorator';
109
import { UtilsService } from '../utils/utils.service';
1110

1211
import { AirportCapacity } from '@/shared/interfaces/airport.interface';
@@ -16,18 +15,13 @@ interface IBlockAssignment {
1615
ttot: Date;
1716
}
1817

19-
const jobNameOptimizeBlockAssignments = 'CDM_optimizeBlockAssignments';
20-
2118
@Injectable()
2219
export class CdmService {
2320
constructor(
2421
@Inject(forwardRef(() => AirportService)) private airportService: AirportService,
2522
@Inject(forwardRef(() => PilotService)) private pilotService: PilotService,
2623
private utilsService: UtilsService,
27-
@Inject(AGENDA_PROVIDER) private agenda: Agenda,
2824
) {
29-
this.agenda.define(jobNameOptimizeBlockAssignments, this.optimizeBlockAssignments.bind(this));
30-
this.agenda.every('2 minute', jobNameOptimizeBlockAssignments);
3125
}
3226

3327
determineInitialBlock(pilot: PilotDocument): IBlockAssignment {
@@ -154,6 +148,7 @@ export class CdmService {
154148
return this.putPilotIntoBlock(pilot, allPilots);
155149
}
156150

151+
@Schedule()
157152
private async optimizeBlockAssignments(): Promise<void> {
158153
const currentBlockId = this.utilsService.getBlockFromTime(new Date());
159154
const allAirports = await this.airportService.getAllAirports();

src/backend/ecfmp/ecfmp.module.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
import { Module } from '@nestjs/common';
22

33
import { DatabaseModule } from '../database.module';
4-
import { ScheduleModule } from '../schedule.module';
54

65
import { EcfmpMeasureProvider } from './ecfmp-measure.model';
76
import { EcfmpService } from './ecfmp.service';
87

98
@Module({
10-
imports: [DatabaseModule, ScheduleModule],
9+
imports: [DatabaseModule],
1110
providers: [EcfmpService, EcfmpMeasureProvider],
1211
exports: [EcfmpService],
1312
})

src/backend/ecfmp/ecfmp.service.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
import { Inject, Injectable } from '@nestjs/common';
2-
import Agenda from 'agenda';
32
import axios from 'axios';
43
import dayjs from 'dayjs';
54
import { FilterQuery } from 'mongoose';
65

76
import { EcfmpMeasure, EcfmpPlugin } from '../../shared/interfaces/ecfmp.interface';
87
import getAppConfig from '../config';
98
import logger from '../logger';
10-
import { AGENDA_PROVIDER } from '../schedule.module';
9+
import { Schedule } from '../schedule/schedule.decorator';
1110

1211
import { ECFMP_MEASURE_MODEL, EcfmpMeasureDocument, EcfmpMeasureModel } from './ecfmp-measure.model';
1312

@@ -17,10 +16,7 @@ const jobNameEnsureMeasureCurrency = 'ECFMP_ensureMeasureCurrency';
1716
export class EcfmpService {
1817
constructor(
1918
@Inject(ECFMP_MEASURE_MODEL) private ecfmpMeasureModel: EcfmpMeasureModel,
20-
@Inject(AGENDA_PROVIDER) private agenda: Agenda,
2119
) {
22-
this.agenda.define(jobNameEnsureMeasureCurrency, this.ensureMeasureCurrency.bind(this));
23-
this.agenda.every('1 minute', jobNameEnsureMeasureCurrency);
2420
}
2521

2622
acceptedMeasureTypes: EcfmpMeasure['measure']['type'][] = [
@@ -94,6 +90,7 @@ export class EcfmpService {
9490
* - upserts measures into vacdm database
9591
* - clears all expired or deleted measures
9692
*/
93+
@Schedule({ interval: '1 minute', nextJob: 'EtfmsService:assignMeasuresToPilots' })
9794
private async ensureMeasureCurrency() {
9895
logger.verbose(`${jobNameEnsureMeasureCurrency} > running...`);
9996

src/backend/etfms/etfms.module.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@ import { Module } from '@nestjs/common';
33
import { CdmModule } from '../cdm/cdm.module';
44
import { EcfmpModule } from '../ecfmp/ecfmp.module';
55
import { PilotModule } from '../pilot/pilot.module';
6-
import { ScheduleModule } from '../schedule.module';
76
import { UtilsModule } from '../utils/utils.module';
87

98
import { EtfmsService } from './etfms.service';
109

1110
@Module({
12-
imports: [ScheduleModule, EcfmpModule, PilotModule, UtilsModule, CdmModule],
11+
imports: [EcfmpModule, PilotModule, UtilsModule, CdmModule],
1312
providers: [EtfmsService],
1413
exports: [EtfmsService],
1514
})

0 commit comments

Comments
 (0)