繁体   English   中英

PHP 自动在某个日期前 48 小时做某事

[英]PHP automatically do something 48 hours before a certain date

我将Phalcon 3.4与 PHP 7.2 和 MySQL 4.7.3 一起使用。

因此,在我的数据库中,我存储了日期(start_date and end_date) ,并且我需要在start_date前 48 小时做一些事情(向客户发送邮件)。 我只需要这样做一次。

我认为这样做的唯一方法是使用 cron 作业?

我只看到一个解决方案。 我的解决方案是创建一个 cron 作业,每小时调用我的 web 服务,在我的 web 服务中,我将检查从现在起是否有 1 个或多个start_date < 到 48 小时。 然后我得到所有相关客户,并为每个客户发送 email。

我在这里发布一个问题,因为我不确定为此创建一个每小时的 cron 作业是否很好。 我想知道您是否知道其他解决方案。 也许还有另一种技术?

这确实非常适合cron

可能的陷阱:

  • 如果任务花费的时间比间隔时间长(即在您的情况下运行超过 1 小时),cron 将愉快地运行另一个; 如果处理时间很长,您可能需要检查一下
  • cron 不会运行错过的任务(例如,如果您的任务安排在 2:30 并且发生 DST 更改,它将跳过并仅运行下一个) - 在您的情况下,这已经通过“小于”检查处理.
  • 您可能希望设置某种标志“当前已处理”,然后“已成功处理”,以便手动调用不会在 cron 运行时处理相同的任务
  • cron 不会检查任务是否成功完成,您可能希望直接在主代码中检查,或定期运行另一个“清理”cron 服务
  • 还要注意时区,如果适用(例如,如果您的所有日期操作都在 UTC 中运行,这主要不是问题)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM