我用这种方式发送消息:
$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?如果是,我如何在循环中使其工作?
答案 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的服务可能适合您。 (我绝不是附属的)。
来自网站:&#34; IronWorker是一个多语言工作者平台,可以在后台,并行和大规模运行任务。&#34;
您基本上会托管您的代码段,以便与它们一起发送消息,并通过脚本调用来执行它。您可以将其设置为您喜欢的任何延迟。
$worker->postScheduleSimple('SendSMS', $smsParams, 10)
该服务提供免费等级,具有良好的使用限制。