swooleプローブノート3非同期処理

1565 ワード

1、非同期読取ファイル
//オブジェクト向けswoole_async_readfile(string $filename,$callback);//純関数swoole非同期読み込みファイルSwooleAsync::readFile(string$filename,$callback);
// 
swoole_async_readfile(__DIR__."/1.txt",function($filename,$content){
    echo "$filename $content";
});

2、非同期ファイル書き込み
swoole_async_writefile($filename,$fileContent,$callback,$flags=0)$fileContent書き込みの内容最大4 M$flags書き込みのオプションFILE_APPEND表示ファイル末尾に追加
$content = 'hello world';
swoole_async_writefile("2.txt",$content,function ($filename){
    echo $filename;
},0);

3、非同期イベント
swoole_event_add($sock,$read_callback,$write_callback=null,$flags=null);
4、非同期mysql
swoole_mysql connect on escape query
// 
$db = new swoole_mysql();

$config = [
    'host' => '127.0.0.1',
    'user' => 'root',
    'password' => '!@#yhj123',
    'database' => 'hong',
    'charset'  => 'utf8',
];
// 
$db->connect($config,function ($db,$r){
    if($r === false){
        var_dump($db->connect_errno,$db->connect_error);
        die(" ");
    }
    // 
    $sql = 'show tables';
    $db->query($sql,function (swoole_mysql $db,$r){
        if($r === false){
            var_dump($db->error);
            die(" ");
        }elseif($r === true){
            var_dump($db->affected_rows,$db->insert_id);
        }
        var_dump($r);
        $db->close();
    });
});