【发布时间】:2011-06-08 00:39:21
【问题描述】:
我创建了一个电子邮件队列数据库表。我将把我的 PHP 应用程序需要发送的所有电子邮件插入到这个表中。
然后另一个 PHP 脚本将查找所有未发送的电子邮件并发送它们。
我使用 cronjobs 运行这个脚本。不幸的是,cronjobs 最多只能每分钟运行一次。 所以在最坏的情况下,用户必须等待一分钟才能真正发送他的电子邮件。
我目前的解决方法是使用额外的睡眠参数调用脚本并复制 cronjobs。
例子:
* * * * * curl emails.php?sleep=0 >/dev/null 2>&1
* * * * * curl emails.php?sleep=10 >/dev/null 2>&1
* * * * * curl emails.php?sleep=20 >/dev/null 2>&1
* * * * * curl emails.php?sleep=30 >/dev/null 2>&1
* * * * * curl emails.php?sleep=40 >/dev/null 2>&1
* * * * * curl emails.php?sleep=50 >/dev/null 2>&1
在上面的示例中,脚本将每 10 秒运行一次。 emails.php 脚本的第一行是:
sleep($_REQUEST['sleep']);
【问题讨论】:
-
superuser.stackexchange.com 上可能有更多知识渊博的人。
-
你想要一个 php 守护进程,而不是一个 cron 脚本。
-
看看
https://crontab.guru/,一个非常好的各种cron配置网站。