Estoy creando una aplicación nestJs, con programación y configuración. Quiero poder configurar mi Cron con mi variable de entorno pero parece que no funciona.
aplicación.módulo.ts:
@Module({ imports: [ ConfigModule.forRoot(), ScheduleModule.forRoot(), SchedulingModule, ... ], }) export class AppModule {}scheduling.service.ts (de mi SchedulingModule):
@Cron(process.env.CRON_VALUE) scheduledJob() { this.logger.log('Scheduled : Job'); ... }.env :
... CRON_VALUE=0 4 * * * ...Aparentemente, en el momento en que se verifica el valor, está vacío. Tuve el siguiente error :
(node:55016) UnhandledPromiseRejectionWarning: TypeError: Cannot read property '_isAMomentObject' of undefined at new CronTime (/Users/antoinegrenard/Documents/Projet/b4finance/service-scheduling/node_modules/cron/lib/cron.js:42:50) at new CronJob (/Users/antoinegrenard/Documents/Projet/b4finance/service-scheduling/node_modules/cron/lib/cron.js:527:19) at /Users/antoinegrenard/Documents/Projet/b4finance/service-scheduling/node_modules/@nestjs/schedule/dist/scheduler.orchestrator.js:56:29 ...Para solucionar este problema, debe volver a cargar la configuración en su servicio:
require('dotenv').config();Aparentemente, no es posible obtener valores env en los decoradores.
Tuve que hacerlo de esta manera:
constructor(private schedulerRegistry: SchedulerRegistry) {} onModuleInit() { const job = new CronJob(process.env. CRON_VALUE, () => { // What you want to do here }); this.schedulerRegistry.addCronJob(name, job); job.start(); }