count = 10; $task_worker->name = 'TaskWorker'; $task_worker->onWorkerStart = function ($task_worker){ global $db,$redis; // $i=0; // $db = new Workerman\MySql\Db('127.0.0.1', '3306', 'root', 'pl/364006', 'chat'); // $db = new Db(DB_HOST, DB_PORT, DB_USER, DB_PASSWD, DB_NAME); // var_dump($db); }; $task_worker->onMessage = function($connection, $task_data) { global $db,$redis; // $redis = new redis(); // var_dump(__DIR__); $task_data = json_decode($task_data,1); var_dump($task_data); $type = $task_data['type']; switch ($type){ case 'record_redis_data': if(record_redis_data()){ //把redis数据记录到文本里 $json = json_encode(array('status'=>0,'msg'=>'success'),JSON_UNESCAPED_UNICODE); $connection->send($json); lg('redis_log',"发送数据给客户端:".$json,1); unset($json); } break; case 'flush_db': $re = flush_db($task_data); if($re){ $connection->send($re); } break; } // $redis->set('name',0); // var_dump($redis->get('name')); // $i=0; // $sql = "select order_no from un_orders order by id desc limit 2"; // $re = $db->query($sql); // $re = $db->getall($sql); //// var_dump($re); //// var_dump($redis); // $redis->set('name','jonsen'); // var_dump($redis->get('name')); // var_dump($i); // echo '服务器端接收到的数据'; // global $db; // var_dump($db); // $sql = "show tables"; // $re = $db->query($sql); // var_dump($re); // var_dump($task_data); // 假设发来的是json数据 // $task_data = json_decode($task_data, true); // var_dump($task_data); // 根据task_data处理相应的任务逻辑.... 得到结果,这里省略.... // $task_result = ...... // $task_result='ok'; // $i++; // // 发送结果 // $connection->send(json_encode($task_result)); }; Worker::runAll(); function flush_db($task_data){ try{ $re = curl_post($task_data['url'],array('all')); dump($re); return $re; }catch (Exception $e){ $msg = $e->getMessage(); dump($msg); lg('flush_db','清缓存错误信息::'.$msg); if($msg){ flush_db($task_data); } } } /** * @return bool * */ function record_redis_data(){ //Redis操作 try{ $redis = new redis(); $redis->connect(REDIS_HOST, REDIS_PORT); $redis->auth(REDIS_PASSWD); $keysArr = $redis->keys('*'); foreach ($keysArr as $v){ $type = $redis->type($v); /** * * none(key不存在) int(0) * string(字符串) int(1) * list(列表) int(3) * set(集合) int(2) * zset(有序集) int(4) * hash(哈希表) int(5) * * */ switch ($type){ case 0: lg('redis','redis里没有任何数据!'); break; case 1: lg('redis','类型:string,键:'.$v.',数据::'.$redis->get($v)); break; case 2: lg('redis','类型:set,键:'.$v.',数据::'.json_encode($redis->sMembers($v),JSON_UNESCAPED_UNICODE)); break; case 3: lg('redis','类型:list,键:'.$v.',数据::'.json_encode($redis->lRange($v,0,-1),JSON_UNESCAPED_UNICODE)); break; case 4: lg('redis','类型:zset,键:'.$v.',数据::'.json_encode($redis->zRange($v,0,-1),JSON_UNESCAPED_UNICODE)); break; case 5: lg('redis','类型:hash,键:'.$v.',数据::'.json_encode($redis->hGetAll($v),JSON_UNESCAPED_UNICODE)); break; } } var_dump('记录Redis数据时间'.date('Y-m-d H:i:s')); $redis->close(); //关闭redis return true; }catch (Exception $e){ lg('record_redis_err','错误信息::'.$e->getMessage().',详情::'.$e->getTraceAsString()); return false; } }