From be41346a80ccebc3cbfe7c359c5ad3625c794d9c Mon Sep 17 00:00:00 2001 From: qieangel2013 <904208360@qq.com> Date: Tue, 30 Aug 2016 11:46:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=86=E5=B8=83=E5=BC=8F?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E9=97=B4=E6=96=87=E4=BB=B6=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E4=B8=A2=E5=8C=85=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改分布式服务器间文件同步丢包的bug --- distributed/server/DistributedClient.php | 18 ++---- distributed/server/DistributedServer.php | 69 ++++++++++++++++------- public/images/weixin.jpeg | Bin 0 -> 47653 bytes 3 files changed, 55 insertions(+), 32 deletions(-) create mode 100644 public/images/weixin.jpeg diff --git a/distributed/server/DistributedClient.php b/distributed/server/DistributedClient.php index f2215bc..fefe2ab 100644 --- a/distributed/server/DistributedClient.php +++ b/distributed/server/DistributedClient.php @@ -29,11 +29,6 @@ public function __construct() public function addServerClient($address) { $client = new swoole_client(SWOOLE_TCP, SWOOLE_SOCK_ASYNC); - $client->set(array( - 'socket_buffer_size' => 1024 * 1024 * 2, - 'open_eof_check' => true, - 'package_eof' => "\r\n\r\n" - )); $client->on('Connect', array( &$this, 'onConnect' @@ -76,14 +71,11 @@ public function onConnect($serv) public function onReceive($client, $data) { - /*$remote_info=json_decode($data, true); - if($remote_info['code']==10002){ - $this->c_client_pool[ip2long($remote_info['fd'])]= array('fd' =>$fd,'client'=>$client); - - }*/ - //$remote_info=json_decode($data, true) - // start a task - //$serv->task(json_encode($param)); + $remote_info = json_decode($data, true); + if ($remote_info['type'] == 'filesizemes') { + if ($client->sendfile(MYPATH . $remote_info['data']['path'])) { + } + } } public function onTask($serv, $task_id, $from_id, $data) { diff --git a/distributed/server/DistributedServer.php b/distributed/server/DistributedServer.php index d0e0253..274e01d 100644 --- a/distributed/server/DistributedServer.php +++ b/distributed/server/DistributedServer.php @@ -22,6 +22,9 @@ class DistributedServer private $localip; private $connectioninfo; private $curpath; + private $filesizes; + private $tmpdata; + private $oldpath; public function __construct() { $this->table = new swoole_table(1024); @@ -38,12 +41,7 @@ public function __construct() $server->set(array( 'worker_num' => 4, 'task_worker_num' => 4, - 'dispatch_mode' => 4, //1: 轮循, 3: 争抢 - //'open_length_check' => true, //打开包长检测 - //'package_max_length' => 8192000, //最大的请求包长度,8M - //'package_length_type' => 'N', //长度的类型,参见PHP的pack函数 - //'package_length_offset' => 0, //第N个字节是包长度的值 - //'package_body_offset' => 0, //从第几个字节计算长度 + 'dispatch_mode' => 4, 'daemonize' => true, 'log_file' => $distributed_config['logfile'] )); @@ -51,12 +49,7 @@ public function __construct() $server->set(array( 'worker_num' => 4, 'task_worker_num' => 4, - 'dispatch_mode' => 4, //1: 轮循, 3: 争抢 - //'open_length_check' => true, //打开包长检测 - //'package_max_length' => 8192000, //最大的请求包长度,8M - //'package_length_type' => 'N', //长度的类型,参见PHP的pack函数 - // 'package_length_offset' => 0, //第N个字节是包长度的值 - //'package_body_offset' => 0, //从第几个字节计算长度 + 'dispatch_mode' => 4, 'daemonize' => true )); } @@ -147,11 +140,42 @@ public function onReceive($serv, $fd, $from_id, $data) $remote_info = json_decode($data, true); //判断是否为二进制图片流 if (!is_array($remote_info)) { - if (is_dir(MYPATH . dirname($this->curpath['path'])) && is_readable(MYPATH . dirname($this->curpath['path']))) { - } else { - mkdir(MYPATH . dirname($this->curpath['path']), 0777, true); + if (isset($this->curpath['path'])) { + if (is_dir(dirname(MYPATH . $this->curpath['path'])) && is_readable(dirname(MYPATH . $this->curpath['path']))) { + } else { + mkdir(dirname(MYPATH . $this->curpath['path']), 0777, true); + } + if ($this->oldpath != $this->curpath['path']) { + $this->tmpdata .= $data; + } + if (strlen($this->tmpdata) == $this->filesizes) { + $infofile = pathinfo(MYPATH . $this->curpath['path']); + if (in_array($infofile['extension'], array( + 'txt', + 'log' + ))) { + if (file_put_contents(MYPATH . $this->curpath['path'], $this->tmpdata)) { + $this->tmpdata = ''; + $this->oldpath = $this->curpath['path']; + } + } else { + if (in_array($infofile['extension'], array( + 'jpg', + 'png', + 'jpeg', + 'JPG', + 'JPEG', + 'PNG', + 'bmp' + ))) { + if (file_put_contents(MYPATH . $this->curpath['path'], $this->tmpdata)) { + $this->tmpdata = ''; + $this->oldpath = $this->curpath['path']; + } //写入图片流 + } + } + } } - file_put_contents(MYPATH . $this->curpath['path'], $data, FILE_APPEND); //写入图片流 } else { if ($remote_info['type'] == 'system' && $remote_info['data']['code'] == 10001) { if ($this->client_a != $remote_info['data']['fd']) { @@ -186,7 +210,6 @@ public function onReceive($serv, $fd, $from_id, $data) } $serv->send($fd, $serv->taskwait($remote_info['data'])); } else { - print_r($remote_info); $serv->task($remote_info['data']); } break; @@ -194,13 +217,21 @@ public function onReceive($serv, $fd, $from_id, $data) if ($this->localip == $this->connectioninfo['remote_ip']) { foreach ($this->b_server_pool as $k => $v) { $v['client']->send($data); - $v['client']->sendfile(MYPATH . $remote_info['data']['path']); } $serv->send($fd, $serv->taskwait($remote_info['data'])); } else { if (isset($remote_info['data']['path'])) { - $this->curpath = $remote_info['data']; + $this->curpath = $remote_info['data']; + $this->filesizes = $remote_info['data']['size']; + $data_s = array( + 'type' => 'filesizemes', + 'data' => array( + 'path' => $remote_info['data']['path'] + ) + ); + $serv->send($fd, json_encode($data_s, true)); } + $serv->task($remote_info['data']); } break; diff --git a/public/images/weixin.jpeg b/public/images/weixin.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..3d9f1102c48c6ba286289226740b1d077d69ba65 GIT binary patch literal 47653 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 z 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 literal 0 HcmV?d00001