+
95
-

php如何实现一个异步任务?

php

现在很多语言都实现了异步执行的功能,那么php有没有类似的异步任务?

网友回复

+
15
-

可以结合register_shutdown_function及fastcgi_finish_request来实现。

fastcgi_finish_request()主要是为了响应浏览器,给用户感觉很响应很快,但是php进程其实还在服务器中运行,执行fastcgi_finish_request()后面的代码。

示例代码如下:

<?php
/**
* 进程关闭hook执行
*/
class AsyncHook {
    private static $hook_list = array();
    private static $hooked = false;
    /**
    * hook函数fastcgi_finish_request执行
    *
    * @param callback $callback
    * @param array $params
    */
    public static function hook($callback, $params) {
        self::$hook_list[] = array('callback' => $callback, 'para...

点击查看剩余70%

我知道答案,我要回答