1

我编写了一个 PHP 应用程序,它将语音消息广播到数据库中的电话号码。

现在我想为它添加一个“计划”功能。这基本上意味着管理员将能够为特定的语音文件设置未来的日期和时间。语音消息将在该日期和时间播放。

请问我该如何编码?一些代码片段将不胜感激。

谢谢,阿米特

4

2 回答 2

4

您需要查看 CRON 作业以自动自动执行脚本。看看: http: //net.tutsplus.com/tutorials/php/managing-cron-jobs-with-php-2/了解更多信息。

于 2011-07-15T18:09:58.630 回答
3

正如汤姆沃尔特斯所说,cron(或计划任务,如果你使用 Windows)可能是一个很好的方法(至少在开始时)。

Cron 的最大分辨率是 1 分钟,所以希望它足够精确。

考虑如下表:

create table calls(
    id int,
    target_time datetime not null,
    actual_time datetime default null
    -- plus whatever data are necessary
);

然后编写一个执行以下操作的脚本:

  1. 使用 target_time <= 当前时间查询数据库中的所有调用,其中 actual_time 为 NULL。(有点像SELECT * FROM calls WHERE actual_time IS NULL and target_time <= NOW()
  2. 迭代这些调用,进行调用,并更新行以设置实际时间。

然后,您使用 cron(或其他)每隔 X 分钟运行一次该脚本。

这是一个应该让你前进的基本架构。

当然,如果您有多条线路用于外拨电话或其他花哨的要求,事情就会变得更加复杂。

如果您需要接近秒的精度,那么 cron 将达不到要求。此时,您可能会考虑编写一个或多个守护程序(连续运行的脚本)来更频繁地轮询数据库。

于 2011-07-15T19:06:25.243 回答