如何在上午 12:00 使用 NestJS 为多个国家/地区编写调度程序在所有时区都相同?

问题描述

我有一个调度程序,它必须在印度时区的凌晨 12:00 和新加坡时区的凌晨 12:00 运行。我能够为印度用户编写一个 cron 作业,但是如何在凌晨 12:00 在新加坡触发相同的任务?

解决方法

如果使用这个方法,只需要写一次代码,从@Cron()修饰的两个函数中调用

service.ts

@Injectable()
export class Service {
  @Cron('* * 0 * * *',{
    timeZone: 'Asia/Tehran',// use this website: https://momentjs.com/timezone/
  })
  async iran() {
    this.yourFunction();
  }

  @Cron('* * 0 * * *',{
    timeZone: 'Asia/Tokyo',})
  async japan() {
    this.yourFunction();
  }

  async yourFunction() {
    // write the schedule only one time
  }
}
,

我认为很容易使用例如 9:30 PM (UTC+08:00(Singapore) - UTC+05:30(India)) AM 而不是 12:00 AM

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...