异步任务
   的服务器配置开启异步任务。
<?php
include('server.ini');
$tcp_serv = new Tcp_server;
$tcp_serv->receive(function($request_data){
return $request_data;
});
$tcp_serv->task(function($request_data,$task_id,$reactor_id){
//$request_data为客户端发送的数据
//$task_id为异步任务ID
//$reactor_id为异步任务线程ID
//匿名回调函数中写你的业务
/**
*创建同步Mysql
*当配置文件config_swoole.php中配置常量ASYNC_CO为开启异步协程时,创建同步Mysql必须在容器中,即在如TCP等服务器或协程容器中(不含多进程容器,当放置多进程容器中也需包含服务器或协程容器),否则会发生冲突导致运行错误。
*/
Sync_mysql::co(function($mysql_conn,$mysql_orm){
//$mysql_conn为mysql的mysqli面向过程连接变量,如下数据库操作示例:
$sql = "insert into account(username) values('同步Mysql操作')";
mysqli_query($mysql_conn,$sql);
mysqli_close($mysql_conn);
//$mysql_orm为mysql的orm操作变量,具体操作请阅读ORM文档。
});
/**
*创建同步Redis
*当配置文件config_swoole.php中配置常量ASYNC_CO为开启异步协程时,创建同步Redis必须在容器中,即在如TCP等服务器或协程容器中(不含多进程容器,当放置多进程容器中也需包含服务器或协程容器),否则会发生冲突导致运行错误。
*/
Sync_redis::co(function($redis){
//$redis为redis连接变量,如下数据库操作示例:
$redis->set('sync','同步Redis操作');
echo $redis->get('sync');
$redis->close();
});
});
$tcp_serv->finish(function($state,$task_id,$reactor_id){
//$state为task异步任务运行结果状态,当$state等于true时,异步任务运行完成。
//$task_id为异步任务ID
//$reactor_id为异步任务线程ID
//匿名回调函数中写你的业务
});
$tcp_serv->start();
同步Mysql
<?php
Sync_mysql::co(function($mysql_conn,$mysql_orm){
//$mysql_conn为mysql的mysqli面向过程连接变量,如下数据库操作示例:
$sql = "insert into account(username) values('同步Mysql操作')";
mysqli_query($mysql_conn,$sql);
mysqli_close($mysql_conn);
//$mysql_orm为mysql的orm操作变量,具体操作请阅读ORM文档。
});
同步Redis
<?php
Sync_redis::co(function($redis){
//$redis为redis连接变量,如下数据库操作示例:
$redis->set('sync','同步Redis操作');
echo $redis->get('sync');
$redis->close();
});