apk打包程序 服务端 代码

14 阅读1分钟
log_file = $dir.$filename; $this->serv = new swoole_server("0.0.0.0", 9501); $this->serv->set(array( 'worker_num' => 1, //一般设置为服务器CPU数的1-4倍 'daemonize' => 1, //以守护进程执行 'max_request' => 10000, 'dispatch_mode' => 2, 'task_worker_num' => 32, //task进程的数量 "task_ipc_mode " => 3 , //使用消息队列通信,并设置为争抢模式, "open_eof_check"=>true, "package_eof"=>"\r\n", "open_eof_split"=>true, //"log_file" => "log/taskqueueu.log" ,//日志 )); $this->serv->on('Receive', array($this, 'onReceive')); // bind callback $this->serv->on('Task', array($this, 'onTask')); $this->serv->on('Finish', array($this, 'onFinish')); $this->serv->start(); } /** * 接收数据 * @param swoole_server $serv * @param $fd * @param $from_id * @param $data */ public function onReceive(swoole_server $serv, $fd, $from_id, $data ) { error_log(date("Ymd H:i:s")."\t onReceive===>".PHP_EOL,3,$this->log_file); //echo "Get Message From Client {$fd}:{$data}n"; // send a task to task worker. $serv->task( $data); } /*** * 执行业务逻辑 * @param $serv * @param $task_id * @param $from_id * @param $data * @return int */ public function onTask($serv,$task_id,$from_id, $data) { error_log(date("Ymd H:i:s")."onTask start===>".var_export($data,true).PHP_EOL,3,$this->log_file); $data = trim($data); $data = str_replace(array("\r\n", "\r", "\n"), "", $data); error_log(date("Ymd H:i:s")."onTask start===>".var_export($data,true).PHP_EOL,3,$this->log_file); $promopage = json_decode( $data , true ); $calc_sign = md5($promopage['download_filename'].date("Y")); if($calc_sign==$promopage['sign']){ chdir($this->source_file_dir);//切换到apk路径 $output_file_dir = str_replace('/','',dirname($promopage['download_filename'])); if(!is_dir($output_file_dir)){ mkdir($output_file_dir,0755,true); } $apk_tpl_name = basename($promopage['download_filename'],'.apk');//获取包名 //接收参数 打包 $command = "/usr/local/webserver/javaweb/jdk/bin/java -jar MCPTool-1.1.jar -path %s -outdir ./%s -contents %s"; $command = sprintf($command,$this->source_file_dir.$promopage['apk_name'],$output_file_dir,$apk_tpl_name); error_log(date("Ymd H:i:s")."command start===>".$command.PHP_EOL,3,$this->log_file); exec($command,$return); error_log(date("Ymd H:i:s")."command end===>".var_export($return,true).PHP_EOL,3,$this->log_file); return 0; }else{ error_log(date("Ymd H:i:s")."onTask error===>".$calc_sign.'=====>'.var_export($promopage,true).PHP_EOL,3,$this->log_file); return -1; } } /** * 连接结束 * @param $serv * @param $task_id * @param $data */ public function onFinish($serv,$task_id, $data) { error_log(date("Ymd H:i:s")."\tonFinish===>".PHP_EOL,3,$this->log_file); //echo "Task {$task_id} finishn"; //echo "Result: {$data}n"; } } $server = new Packserver(); ———————————————— 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/qq_24700495/article/details/144394932