我正在使用php应用程序,我需要检查今天有生日的用户数据库。 我通过cron工作。
现在,当我获得生日用户时,我需要向他们发送短信。 SMS具有相关的单独时间,其确定何时应发送SMS。 让我们说约翰和彼得今天过生日。彼得从01-09工作,所以他应该在01年获得短信,彼得从08-16工作,所以他应该在08年获得他的短信。
我在考虑动态创建相同数量的cron jbos,这等于在给定日期生日的人。然后,那些cron工作会将这条短信发送给适当的人,这就是它。
我的问题是,有更聪明的方法吗? 其次,如果cron作业生成的想法足够好,有没有办法删除单个旧的cron作业,所以我不会用旧作业重新编写cron作业列表,这些作业永远不会再次运行?
提前致谢。
答案 0 :(得分:3)
如果您想使用cronjobs在特定时间向每个人发送消息,那么您必须为每个人创建一个cronjob。我的眼中非常糟糕,因为你最终可能会有1000多个cronjobs!
对于每5分钟左右运行一次cronjob的系统(不管你经常想要),你会好多了,而且这个cronjob会执行一个PHP脚本来确定当时是否有任何要发送的消息,或者现在和最后一个cronjob。
虽然这可能意味着您的用户可能会在5分钟后收到他们的消息,但这不太可能,因为我知道的人不会在8:02开始工作,因此,如果cronjob是在8:00,8:05,8 :10等,你几乎总能按时发送消息!
答案 1 :(得分:2)
如果您担心创建过多的cron作业(不确定系统中会出现多少问题),那么为什么不在OS级别创建一个cron作业呢?然后你可以每10分钟左右打电话给你的程序,它可以检查是否有新的人需要发送短信。