php不同时区怎么定时间点发送邮件

场景:
假设客户涉及十个国家的不同时区, 比如美国客户设定的时区又不一样, 现在需要在客户所在时区的0点 发送一份报告, 并且报告不能提前准备好, 数据要实时计算, 每份计算时间大概15 分钟。

问题:

  1. 怎么实现在每个时区的 0 点发送报告呢(客户时区可能有增减,不固定)?
  2. 怎么一个定时器调用多进程同时发, 排队发的话, 后面的都不知道排到啥时候了。
阅读 2.5k
2 个回答

嗯,是不是可以用 swoole 来用协程呢。

或者你可以用 php 的 pthread,来定义一个进程来干这件事情,然后在进程里面 fork 多个子进程来干这件事。

或者换一种解决思路,实际上总共就那么几个时区,是不是可以按照时区来分组搞这个东西呢。

  1. 你可以把其他时区换算成当前时区对应的时间,在换算后的时间点发送
  2. 采用排队发送,可以设置多个消费者来消费,执行时间不会太长吧
  3. 采用多进程的话,swoole是个不错的选择
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏