如何管理多个时区的单个 cron 作业

How to manage single cron job for mutliple time zone

我想为 UTC 时间创建单个 cron 作业并根据他们的时区时间向用户发送通知。

您可以按照以下步骤将通知发送到用户的时区。

  1. 创建一个Cronjob(根据您的要求设置间隔)
  2. 现在获取所有用户记录。
  3. 获取每个用户的时区。
  4. 现在,将您的日期时间转换为用户的时区。
  5. 将您当前的时间与用户的时区时间相匹配
  6. 如果时间与用户的时区匹配,则只向该用户发送通知。

已更新, 例如,用户的时区为 GMT +530,而您的服务器的时区为 GMT 0,那么如果您获得通知时间为 4:30 PM 的用户记录同时您的服务器时间将是 11:00 上午。现在 cronjob 在 11:00 AM 运行,根据您需要在当前时间添加 5:30 小时的用户时区,因此 11:00 AM + 5:30 = 4:30 PM(也要注意日期)这是你用户的时间,在这种情况下你可以向他发送通知。

如果您不想为每一分钟都设置 cron,那么您可以设置边际分钟数以供检查。假设您的 cron 每 10 分钟运行一次,那么您必须检查 converted_time >= 4:20 and converted_time < 4:30 之类的条件。 (记住这里的 >=< 组合)