首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
在request进行异步发送消息时报swReactorEpoll_add错
**版本:swoole 1.7.21 stable** 【报错如下】 [2016-03-23 16:15:40 *30290.1] WARN swReactorEpoll_add#144: add events[fd=166#0, type=15, events=1] failed. Error: File exists[17]. Warning: swoole_event_add(): swoole_event_add failed. 【http server服务部分代码如下】 {{{php public function onWorkerStart( $serv , $worker_id) { $serv->push = stream_socket_client("tcp://127.0.0.1:9602", $code, $msg, 3); } public function onRequest($request, $response){ $fp = $this->serv->push; $http_request = $request->get['params']; fwrite($fp, $http_request); swoole_event_add($fp, function($fp){ //echo fread($fp, 8192); swoole_event_del($fp); fclose($fp); }); } }}} 【9602 端口服务部分代码如下】 {{{php $serv = new swoole_server( Config::$req_server_host, Config::$req_server_port ); $serv->set(array( 'worker_num' => 16, //worker number 'max_conn' => 1000000, 'max_request' => 1000000, 'heartbeat_idle_time' => 600, 'heartbeat_check_interval' => 60, 'pipe_buffer_size' => 64 * 1024 * 1024, //512M //'open_tcp_keepalive'=>1, //'debug_mode'=> 1, 'task_worker_num'=>16 //'daemonize' => true, //Is start Daemon process )); $serv->on('Receive', function($serv, $fd, $from_id, $data) { $serv->task($data); Log::trace("Dispath AsyncTask:\n"+$data); }); }}}
发布于9年前 · 7 次浏览 · 来自
提问
孤
孤舟一叶²⁰¹⁷
**版本:swoole 1.7.21 stable** 【报错如下】 [2016-03-23 16:15:40 *30290.1] WARN swReactorEpoll_add#144: add events[fd=166#0, type=15, events=1] failed. Error: File exists[17]. Warning: swoole_event_add(): swoole_event_add failed. 【http server服务部分代码如下】 {{{php public function onWorkerStart( $serv , $worker_id) { $serv->push = stream_socket_client("tcp://127.0.0.1:9602", $code, $msg, 3); } public function onRequest($request, $response){ $fp = $this->serv->push; $http_request = $request->get['params']; fwrite($fp, $http_request); swoole_event_add($fp, function($fp){ //echo fread($fp, 8192); swoole_event_del($fp); fclose($fp); }); } }}} 【9602 端口服务部分代码如下】 {{{php $serv = new swoole_server( Config::$req_server_host, Config::$req_server_port ); $serv->set(array( 'worker_num' => 16, //worker number 'max_conn' => 1000000, 'max_request' => 1000000, 'heartbeat_idle_time' => 600, 'heartbeat_check_interval' => 60, 'pipe_buffer_size' => 64 * 1024 * 1024, //512M //'open_tcp_keepalive'=>1, //'debug_mode'=> 1, 'task_worker_num'=>16 //'daemonize' => true, //Is start Daemon process )); $serv->on('Receive', function($serv, $fd, $from_id, $data) { $serv->task($data); Log::trace("Dispath AsyncTask:\n"+$data); }); }}}
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2017-07-21
回
回忆的沙漏.、
不要重复添加相同的socket到EventLoop中。
赞
0
回复
2017-07-21
a
a
己解决 $fp = $this->serv->push; $http_request = $request->get['params']; swoole_event_write($fp, $http_request); 用上面代码替换即可
赞
0
回复