Web开发中的预定事件
Scheduled events in web development
我正在开发一个 Web 应用程序,它需要 php 代码到 运行 在特定的 date/time。
一些假设示例是在用户生日 09:00 时向用户发送电子邮件或在预定日期和时间修改数据库条目 (mySQL)。
实现这种调度功能的常规方法是什么?
我已经看到 cron-jobs 被用于类似的要求,但这对于大量计划任务是否可行?
取决于项目的大小,但通常我们没有一个脚本来完成所有的 cron 作业,因为事情需要在不同的时间发生。一些电子邮件可能会在晚上 9 点发送,一些数据库清理可能会在午夜进行,会话可能每隔几分钟就会过期。最好的办法是为每件事设置单独的 cron 作业。有几个例外:
有些任务需要运行非常频繁,比如每 30 秒一次。为此,我们设置了一个 cron 任务来检查 "ps" 以查看它自己的进程是否已经 运行ning,并让它等待 30 秒并循环。
当队列已满时,某些任务对 运行 更有意义。为此,我们会在某个基于用户的脚本执行第 100 次、第 200 次或第 300 次时触发任务。例如,当用户 ping 100 次而没有做任何其他事情时,我们会在不使用 cron 任务的情况下将他们注销,但是有一个单独的 cron 任务会检查他们是否已经处于非活动状态 10 分钟。
我正在开发一个 Web 应用程序,它需要 php 代码到 运行 在特定的 date/time。
一些假设示例是在用户生日 09:00 时向用户发送电子邮件或在预定日期和时间修改数据库条目 (mySQL)。
实现这种调度功能的常规方法是什么? 我已经看到 cron-jobs 被用于类似的要求,但这对于大量计划任务是否可行?
取决于项目的大小,但通常我们没有一个脚本来完成所有的 cron 作业,因为事情需要在不同的时间发生。一些电子邮件可能会在晚上 9 点发送,一些数据库清理可能会在午夜进行,会话可能每隔几分钟就会过期。最好的办法是为每件事设置单独的 cron 作业。有几个例外:
有些任务需要运行非常频繁,比如每 30 秒一次。为此,我们设置了一个 cron 任务来检查 "ps" 以查看它自己的进程是否已经 运行ning,并让它等待 30 秒并循环。
当队列已满时,某些任务对 运行 更有意义。为此,我们会在某个基于用户的脚本执行第 100 次、第 200 次或第 300 次时触发任务。例如,当用户 ping 100 次而没有做任何其他事情时,我们会在不使用 cron 任务的情况下将他们注销,但是有一个单独的 cron 任务会检查他们是否已经处于非活动状态 10 分钟。