【发布时间】:2011-05-30 22:30:57
【问题描述】:
我想构建一个应用程序,使用户能够安排电子邮件随时发送。简单地说,编写电子邮件消息并安排它,以便服务器在指定的时间发送它。我正在使用zend框架。如何在php中做到这一点?可以用cron作业来完成吗?如果是,那么使用 cron 的缺点是什么?
【问题讨论】:
标签: php email zend-framework cron
我想构建一个应用程序,使用户能够安排电子邮件随时发送。简单地说,编写电子邮件消息并安排它,以便服务器在指定的时间发送它。我正在使用zend框架。如何在php中做到这一点?可以用cron作业来完成吗?如果是,那么使用 cron 的缺点是什么?
【问题讨论】:
标签: php email zend-framework cron
Cron 是类 Unix 计算机操作系统中基于时间的作业调度程序。 cron 的名称来自单词“chronos”,希腊语中的“时间”。1 Cron 使用户能够安排作业(命令或 shell 脚本)在特定时间或日期定期运行。它通常用于自动化系统维护或管理,尽管它的通用性意味着它可以用于其他目的,例如连接到 Internet 和下载电子邮件。
我会每分钟运行一次 cron 作业并检查是否有任何邮件准备好被安排。下面论坛主题的引述说明了如何每分钟运行一次 cron。
crontab -e然后设置一个标签
* * * * * /command第一个星是分钟部分, 所以有一颗星星就会执行 每一分钟
如果你更清楚 每 5 分钟想要一次,然后就可以了
*/5 * * * * /command/to/execute而其他星星从左到右 对了
分钟 小时 dayofmonth 月 星期*
*0=星期日
如果是,那是什么 使用 cron 的缺点
当执行大量 cronjobs 时,您将不得不生成大量进程(支付昂贵的生成进程成本)。在这种情况下,最好让后台进程持续运行并从消息队列中获取消息。但是,当您只想每分钟运行一次 cronjob 时,我认为这不是什么大问题。
【讨论】:
我会使用 cron 作业来解决这个问题。
只需创建一个脚本来检查在特定时间发送的消息。用户安排说下午 1 点(当然使用数据库),脚本每 5 分钟左右运行一次,它检查(数据库),当前时间是否有任何消息要发出?如果是,它会发送电子邮件,否则它会休眠。
干净简单的处理方式。
缺点?
我什么都看不到,这就是 cron 的用途,在特定时间运行任务。
【讨论】: