如何在访问一个执行时间比较久的api的时候,不理会它的执行时间和返回值,直接执行下一行代码?

如题:

其实大概就是想在打开一个页面的时候,再通过api去触发一个程序,但是这个程序执行的比较慢,我不想在页面里理会它的执行和返回,触发请求之后直接就继续执行后面的代码,请问大家,这种情况时具体用php代码应该如何实现?
阅读 4.2k
8 个回答

这样告诉你吧,如果你想异步出发程序不是不可以,用socket就可以实现
具体实施的步骤
1.发送指令到socket服务器上
2.socket接收指令,通过长链接的方式,异步发送命令到另外一个任务处理服务器上
3.socket直接告知web服务器收到指令并执行,但任务通过任务处理服务器来执行. ---- 这一步,相当于ajax异步执行
4.任务处理服务器完成后,发送完成指令到socket服务器上.
5.由socket服务器完成指定的任务完成逻辑.
在第5步中可以细化,当然了,我对于异步是这样处理的,如果有其他更好的方式请指出不足指出.
以上代码具体实现请查看workman

小伙子,老夫传授给你两字真言:队!列!

如果时效性不强的话。推荐缓存起来

fastcgi_finish_request()可以满足你,php-fpm才支持。。或者搞个队列服务

php连异步回调都没有吗?哎

这不就是异步传输技术吗?不使用socket也可以的吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题