你好,我在这里遇到一些问题。我在我的mysql数据库中有一条消息,我希望根据预定日期发送有任何方法可以执行此操作:何时是服务器应该自己发送邮件的确切日期,或者无论如何都要进行页面加载我每天都无法发送电子邮件(如果没有人访问该网站)。谢谢。我正在使用php和mysql db。我已在我的数据库中安排了专栏
答案 0 :(得分:2)
您可以使用cron job来调用脚本,该脚本以设定的间隔(可能每小时一次)检查数据库,然后让该脚本提取相关消息并发送它们。
对此的cron看起来像:
0 * * * * /path/to/email/script.php
然后,此脚本可以查询数据库并发送需要发送的消息。当然,您可以将其设置为每分钟运行一次(* * * * *
),但我会非常警惕每一分钟都运行任何脚本!
这不是一个理想的想法,而是应该考虑使用某种形式的队列管理。如果您查看queues.io,您可以找到有关各种流行队列项目项目的大量信息。
我也发现setting up background jobs using resque上的这篇文章非常有帮助!
当然,如何集成这样的系统在很大程度上取决于您的代码库和您的环境。
有些框架很好地集成了这种功能,我与Laravel 4's queue component进行了很多合作,而且确实很容易使用它。
实际上很多人最终都会使用cron / script组合来完成这项工作,但重要的是要知道还有其他(更好)的方法来实现这一目标。
答案 1 :(得分:0)
在不中断CPU利用率的情况下执行此操作的最佳方法是通过服务器上的计划cron任务进行计划。编写代码以发送电子邮件,然后将该页面添加到服务器管理控制面板中的每日cron。