关于异步任务

http://doc.workerman.net/faq/async-task.html
对文档异步任务有个疑问
例如我有10台专门处理异步任务的服务器
能否做到负载均衡一样的效果呢
例如一台建立了10个任务. 能否自动切换到第二台服务器吗?
还是需要自己去判断A服务器 是否建立了10个任务 自动切换IP呢
[code][size]new[/size] AsyncTcpConnection([size]'Text://127.0.0.1:12345'[/size]);
[/code]
[code][size]use[/size] [size]Workerman[/size]\[size]Worker[/size];
[size]use[/size] \[size]Workerman[/size]\[size]Connection[/size]\[size]AsyncTcpConnection[/size];
[size]require_once[/size] [size]__DIR__[/size] . [size]'/Workerman/Autoloader.php'[/size];

[size]// websocket服务[/size]
$worker = [size]new[/size] Worker([size]'websocket://0.0.0.0:8080'[/size]);

$worker->onMessage = [size][size]function[/size][size]($ws_connection, $message)[/size]
[/size]{
[size]// 与远程task服务建立异步连接,ip为远程task服务的ip,如果是本机就是127.0.0.1,如果是集群就是lvs的ip[/size]
$task_connection = [size]new[/size] AsyncTcpConnection([size]'Text://127.0.0.1:12345'[/size]);
[size]// 任务及参数数据[/size]
$task_data = [size]array[/size](
[size]'function'[/size] => [size]'send_mail'[/size],
[size]'args'[/size] => [size]array[/size]([size]'from'[/size]=>[size]'xxx'[/size], [size]'to'[/size]=>[size]'xxx'[/size], [size]'contents'[/size]=>[size]'xxx'[/size]),
);
[size]// 发送数据[/size]
$task_connection->send(json_encode($task_data));
[size]// 异步获得结果[/size]
$task_connection->onMessage = [size][size]function[/size][size]($task_connection, $task_result)[/size][size]use[/size][size]($ws_connection)[/size]
[/size]{
[size]// 结果[/size]
var_dump($task_result);
[size]// 获得结果后记得关闭异步连接[/size]
$task_connection->close();
[size]// 通知对应的websocket客户端任务完成[/size]
$ws_connection->send([size]'task complete'[/size]);
};
[size]// 执行异步连接[/size]
$task_connection->connect();
}

Worker::runAll();
[/code]
已邀请:

静默

赞同来自:

不会自己切换的,得自己判断

要回复问题请先登录注册