Web开发中的预定事件

Scheduled events in web development

我正在开发一个 Web 应用程序,它需要 php 代码到 运行 在特定的 date/time。

一些假设示例是在用户生日 09:00 时向用户发送电子邮件或在预定日期和时间修改数据库条目 (mySQL)。

实现这种调度功能的常规方法是什么? 我已经看到 cron-jobs 被用于类似的要求,但这对于大量计划任务是否可行?

取决于项目的大小,但通常我们没有一个脚本来完成所有的 cron 作业,因为事情需要在不同的时间发生。一些电子邮件可能会在晚上 9 点发送,一些数据库清理可能会在午夜进行,会话可能每隔几分钟就会过期。最好的办法是为每件事设置单独的 cron 作业。有几个例外:

  1. 有些任务需要运行非常频繁,比如每 30 秒一次。为此,我们设置了一个 cron 任务来检查 "ps" 以查看它自己的进程是否已经 运行ning,并让它等待 30 秒并循环。

  2. 当队列已满时,某些任务对 运行 更有意义。为此,我们会在某个基于用户的脚本执行第 100 次、第 200 次或第 300 次时触发任务。例如,当用户 ping 100 次而没有做任何其他事情时,我们会在不使用 cron 任务的情况下将他们注销,但是有一个单独的 cron 任务会检查他们是否已经处于非活动状态 10 分钟。