我有一个脚本,目前有一个步骤,我触发一个客户注册后的语音广播。这是对callfire的nusoap调用。
那里的延迟相当高,它给我的亚秒级注册过程增加了大约2秒。结果,我让人们不止一次点击注册按钮。
有没有办法告诉应用程序不要等待结果,只需继续前进?
可以通过将所有nusoap代码放在一个单独的文件中,然后打开该文件的套接字来作弊,但我正在寻找一种更干净的方法。
或者,有没有一种方法可以启动一个函数而不等待结果?我不认为有。
发布于 2009-08-06 16:36:19
您可以将代码移动到cli脚本。从web服务器PHP线程运行cli脚本。然后,CLI进程派生,父进程退出。web线程可以继续,CLI子进程可以注册用户。
如果SOAP调用失败,我建议您将数据存储在某个位置,并在成功后将其删除或标记为已完成。您可以让cron作业定期检查是否有任何调用失败,然后重试这些调用,然后通知某人(管理员、用户)。
发布于 2009-08-06 16:08:55
如果你有一些动作必须是“很快”而不是“马上”的,那么就把它添加到某种队列中(例如数据库表)。
接下来,每隔一分钟左右就会有一个cron作业出现,并执行此队列中的任务。
发布于 2009-08-06 16:10:44
据我所知,没有一种方法可以直接启动一个函数并在执行链中跳过它……但是有一些很酷/简单的解决方案:
https://stackoverflow.com/questions/1239857
复制相似问题