在time命令中执行timed命令

时间:2013-04-19 09:31:58

标签: php cron

我正在使用php应用程序,我需要检查今天有生日的用户数据库。 我通过cron工作。

现在,当我获得生日用户时,我需要向他们发送短信。 SMS具有相关的单独时间,其确定何时应发送SMS。 让我们说约翰和彼得今天过生日。彼得从01-09工作,所以他应该在01年获得短信,彼得从08-16工作,所以他应该在08年获得他的短信。

我在考虑动态创建相同数量的cron jbos,这等于在给定日期生日的人。然后,那些cron工作会将这条短信发送给适当的人,这就是它。

我的问题是,有更聪明的方法吗? 其次,如果cron作业生成的想法足够好,有没有办法删除单个旧的cron作业,所以我不会用旧作业重新编写cron作业列表,这些作业永远不会再次运行?

提前致谢。

2 个答案:

答案 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分钟左右打电话给你的程序,它可以检查是否有新的人需要发送短信。