我正在为企业开发一个Web应用程序来跟踪他们的维修状况。在LAMP上运行的部件订单(Linux Apache MySQL PHP)。我只需要一些关于如何允许用户自定义电子邮件通知频率的输入。
目前,我只是在每周一早上6点运行一个cron作业,该作业运行一个php脚本,向每个用户发送未处理作业的电子邮件。但我想让用户不仅可以灵活选择发送时间,还可以选择一周中的日期。
我有一个想法是,某种方式,将他们的电子邮件通知首选项存储在MySQL数据库中,然后编写一个php脚本通过电子邮件通知,但前提是当前日期/时间符合他们设置的标准和放大器;写入代码以防止在同一周期内发送两次。然后我可以每分钟或者5分钟或者其他什么来运行cron作业。
或者以某种方式通过php以编程方式为每个用户创建单独的cron作业会更好吗?
任何输入都将非常感谢! :)
答案 0 :(得分:0)
不,你是对的。
个别crons将消耗许多资源。想象一下,有10k用户要求在不同时间发送邮件......这意味着10k的任务。
最佳解决方案是创建一个将在用户上运行并执行正确操作的cron任务。
迭代您的用户,检查设置的日期/时间,检测更改并发送邮件并在某处添加标记,以便“已完成”(属性
last_cron_scandate
或next_calculated_cron_scandate
可能是一个好消息溶液)