Esempio n. 1
0
<?php

/**
 * Created by PhpStorm.
 * User: Jenner
 * Date: 2015/8/25
 * Time: 14:05
 */
date_default_timezone_set("PRC");
require dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
$async = new \Jenner\Http\Async();
$task = \Jenner\Http\Task::createGet("http://www.baidu.com");
$async->attach($task, "baidu");
$task2 = \Jenner\Http\Task::createGet("http://www.sina.com");
$async->attach($task2, "sina");
$task3 = \Jenner\Http\Task::createGet("http://www.qq.com");
$async->attach($task3, "qq");
/**
 * you can do something here before receive the http responses
 * eg. query data from mysql or redis.
 */
$async->start();
while (true) {
    // nonblock
    if (!$async->isDone()) {
        echo "I am running" . PHP_EOL;
        sleep(1);
        continue;
    }
    $result = $async->execute();
    print_r($result);
<?php

/**
 * Created by PhpStorm.
 * User: Jenner
 * Date: 2015/9/24
 * Time: 16:09
 */
date_default_timezone_set("PRC");
require dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
$timer = new \Jenner\Timer(\Jenner\Timer::UNIT_KB);
$timer->mark("start");
$async = new \Jenner\Http\Async();
for ($i = 0; $i < 20; $i++) {
    $task = \Jenner\Http\Task::createGet("http://www.baidu.com");
    $async->attach($task, "baidu" . $i);
    $task2 = \Jenner\Http\Task::createGet("http://www.sina.com");
    $async->attach($task2, "sina" . $i);
    $task3 = \Jenner\Http\Task::createGet("http://www.qq.com");
    $async->attach($task3, "qq" . $i);
}
$result = $async->execute();
$timer->mark("end");
$timer->printDiffReport();
Esempio n. 3
0
<?php

/**
 * Created by PhpStorm.
 * User: Jenner
 * Date: 2015/11/2
 * Time: 10:57
 */
date_default_timezone_set("PRC");
require dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
$async = new \Jenner\Http\Async();
$task = \Jenner\Http\Task::createGet("http://www.baidu.com");
$promise = $async->attach($task, "baidu");
$promise->then(function ($data) {
    echo 'success:' . var_export($data, true) . PHP_EOL;
}, function ($data) {
    echo 'error:' . var_export($data, true) . PHP_EOL;
});
$async->execute();