如何管理多个时区的单个 cron 作业
How to manage single cron job for mutliple time zone
我想为 UTC 时间创建单个 cron 作业并根据他们的时区时间向用户发送通知。
您可以按照以下步骤将通知发送到用户的时区。
- 创建一个Cronjob(根据您的要求设置间隔)
- 现在获取所有用户记录。
- 获取每个用户的时区。
- 现在,将您的日期时间转换为用户的时区。
- 将您当前的时间与用户的时区时间相匹配
- 如果时间与用户的时区匹配,则只向该用户发送通知。
已更新, 例如,用户的时区为 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
之类的条件。 (记住这里的 >=
和 <
组合)
我想为 UTC 时间创建单个 cron 作业并根据他们的时区时间向用户发送通知。
您可以按照以下步骤将通知发送到用户的时区。
- 创建一个Cronjob(根据您的要求设置间隔)
- 现在获取所有用户记录。
- 获取每个用户的时区。
- 现在,将您的日期时间转换为用户的时区。
- 将您当前的时间与用户的时区时间相匹配
- 如果时间与用户的时区匹配,则只向该用户发送通知。
已更新, 例如,用户的时区为 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
之类的条件。 (记住这里的 >=
和 <
组合)