我正在使用一个 php 应用程序,我需要在其中检查今天过生日的用户的数据库。 这是我通过 cron 作业完成的。
现在,当我收到生日用户时,我需要向他们发送短信。 SMS 有一个单独的时间相关联,它决定了应该发送 SMS 的时间。 假设约翰和彼得今天过生日。 Peter 在 01-09 工作,所以他应该在 01 收到短信,Peter 在 08-16 工作,所以他应该在 08 收到短信。
我正在考虑动态创建相同数量的 cron jbos,它等于在给定日期过生日的人。这些 cron 作业然后会将 SMS 发送给适当的人一次,仅此而已。
我的问题是,有没有更聪明的方法来做到这一点? 其次,如果 cron 作业生成的想法足够好,是否有办法删除单个旧的 cron 作业,这样我就不会用永远不会再次运行的旧作业阻塞 cron 作业列表?
提前致谢。
最佳答案
如果您想使用定时任务在特定时间向每个人发送消息,那么您必须为每个人创建一个定时任务。在我看来,这是一个非常糟糕的主意,因为你最终可能会有超过 1000 个 cronjobs!
使用一个每 5 分钟左右运行一次 cronjob 的系统会好得多(无论你想要多长时间),这个 cronjob 执行一个 PHP 脚本来确定当时是否有任何消息要发送,或者两者之间现在和最后一个 cronjob。
虽然这可能意味着您的用户可能会晚 5 分钟收到他们的消息,但这不太可能,因为我认识的人都不会在 8:02 开始工作,因此,如果 cronjob 是在 8:00、8:05、8 :10 等,您几乎总能按时收到消息!
关于php - 在time命令中执行定时命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16101529/