Twilio,在发送下一条消息之前暂停

时间:2014-06-04 14:02:38

标签: twilio

我用这种方式发送消息:

$AccountSid = $options['twilio_sid'];
$AuthToken = $options['twilio_auth'];
$client = new Services_Twilio($AccountSid, $AuthToken);
$from = $options['twilio_number'];

foreach ($mesages as $message) {

    $client->account->sms_messages->create(
        $from,
        $message['sms_notification'],
        $author_notification
    );
}

如何将其暂停几秒钟?

所有消息都应该立即发送,但是从脚本运行的那一刻起延迟几秒钟。

我是否需要更改以下内容:http://twilio-php.readthedocs.org/en/latest/usage/twiml.html#pause?如果是,我如何在循环中使其工作?

3 个答案:

答案 0 :(得分:1)

Twilio员工在这里。

有一种更简单的方法可以执行您想要执行的操作,只需在循环中添加<Pause>,如下所示:

foreach ($mesages as $message) {


    $client->account->sms_messages->create(
        $from,
        $message['sms_notification'],
        $author_notification
    );

    //Add your pause here using sleep()
    sleep(30);

}

这样你就可以自己控制延迟/睡眠!

答案 1 :(得分:1)

对于一个简单的延迟,你会使用sleep之类的东西,但是,如果这是在web请求中运行的,你可能希望web请求向后台服务发送一条消息然后处理发送消息在特定时间。

我在PHP中没有做过这么多,但是如果你想要查看类似beanstalk

之类的内容

我看到你提到你在wordpress插件中运行它 - 如果自己运行外部服务不是一个选项,你可能想要查看一些&#34; cron&#34; wordpress插件,看看你是否可以攻击你所需要的东西。

答案 2 :(得分:1)

有一项名为IronWorker的服务可能适合您。 (我绝不是附属的)。

http://www.iron.io/worker

来自网站:&#34; IronWorker是一个多语言工作者平台,可以在后台,并行和大规模运行任务。&#34;

您基本上会托管您的代码段,以便与它们一起发送消息,并通过脚本调用来执行它。您可以将其设置为您喜欢的任何延迟。

$worker->postScheduleSimple('SendSMS', $smsParams, 10)

该服务提供免费等级,具有良好的使用限制。