首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从php启动nusoap,不要等待结果

从php启动nusoap,不要等待结果
EN

Stack Overflow用户
提问于 2009-08-06 15:55:38
回答 4查看 668关注 0票数 0

我有一个脚本,目前有一个步骤,我触发一个客户注册后的语音广播。这是对callfire的nusoap调用。

那里的延迟相当高,它给我的亚秒级注册过程增加了大约2秒。结果,我让人们不止一次点击注册按钮。

有没有办法告诉应用程序不要等待结果,只需继续前进?

可以通过将所有nusoap代码放在一个单独的文件中,然后打开该文件的套接字来作弊,但我正在寻找一种更干净的方法。

或者,有没有一种方法可以启动一个函数而不等待结果?我不认为有。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-08-06 16:36:19

您可以将代码移动到cli脚本。从web服务器PHP线程运行cli脚本。然后,CLI进程派生,父进程退出。web线程可以继续,CLI子进程可以注册用户。

如果SOAP调用失败,我建议您将数据存储在某个位置,并在成功后将其删除或标记为已完成。您可以让cron作业定期检查是否有任何调用失败,然后重试这些调用,然后通知某人(管理员、用户)。

票数 1
EN

Stack Overflow用户

发布于 2009-08-06 16:08:55

如果你有一些动作必须是“很快”而不是“马上”的,那么就把它添加到某种队列中(例如数据库表)。

接下来,每隔一分钟左右就会有一个cron作业出现,并执行此队列中的任务。

票数 0
EN

Stack Overflow用户

发布于 2009-08-06 16:10:44

据我所知,没有一种方法可以直接启动一个函数并在执行链中跳过它……但是有一些很酷/简单的解决方案:

  • 就像你提到的,将代码放在一个单独的文件中,并以这种方式启动它……尽管我只是使用了一个shell_exec命令来运行它,所以它在background
  • Create中运行了一个队列,就像Paul提到的gearman,看看像shell_exec(http://www.danga.com/gearman/)这样的东西...Digg为使用它编写了一些很好的PEAR库。Gearman可能有点夸张,但它太酷了,不能不提:)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1239857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档