搜索

首页  >  问答  >  正文

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

如题:

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

全部回复(8)我来回复

  • ringa_lee

    ringa_lee2017-05-16 13:12:48

    @dawnblog 说的方法诚然是可以的,但是题主的需求只需要用fsockopen简单地触发一下就可以了,并不需要处理回调数据.

    参考: http://www.laruence.com/2008/...

    回复
    0
  • 黄舟

    黄舟2017-05-16 13:12:48

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

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 13:12:48

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

    回复
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:12:48

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

    回复
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:12:48

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

    回复
    0
  • 为情所困

    为情所困2017-05-16 13:12:48

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

    回复
    0
  • 世界只因有你

    世界只因有你2017-05-16 13:12:48

    swoole进程管理不一样的PHP 参见swoole进程管理

    回复
    0
  • 巴扎黑

    巴扎黑2017-05-16 13:12:48

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

    回复
    0
  • 取消回复