stanley-king 4 年之前
父節點
當前提交
47d44086a1

+ 1 - 1
core/framework/libraries/log.php

@@ -52,7 +52,7 @@ class Log
 
     public static function end_sql_log()
     {
-        self::$sqlog = false;
+        self::$sqlog = [];
     }
 
     private static function add_sql_log($log)

+ 1 - 1
docker/conf/php/php-local-debug.ini

@@ -401,7 +401,7 @@ max_input_time = 60
 
 ; Maximum amount of memory a script may consume (128MB)
 ; http://php.net/memory-limit
-memory_limit = 64M
+memory_limit = 128M
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ; Error handling and logging ;

+ 16 - 5
helper/fcgisrv/BaseServer.php

@@ -41,7 +41,7 @@ abstract class BaseServer
 
     public function handle_error($level, $message, $file, $line)
     {
-        if($level == E_NOTICE) return;
+//        if($level == E_NOTICE) return;
         $trace = "handle_error: level={$level},msg={$message} file={$file},line={$line}\n";
         $backtrace = debug_backtrace();
         foreach ($backtrace as $item) {
@@ -53,7 +53,7 @@ abstract class BaseServer
 
     protected function preLooper()
     {
-        set_error_handler([$this, 'handle_error']);
+//        set_error_handler([$this, 'handle_error']);
     }
 
     abstract function handle_req($file);
@@ -62,15 +62,26 @@ abstract class BaseServer
         Log::record(__FUNCTION__,Log::DEBUG);
         $this->preLooper();
         Log::record('Waiting......',Log::DEBUG);
+        $i = 0;
         while(($ret = fcgi_accept()) >= 0)
         {
+            $mem = memory_get_usage();
+            Log::record("index = {$i} memory={$mem} ",Log::DEBUG);
+            ++$i;
+
             $start = microtime(true);
+            http_header::instance()->start();
+            fcgi_header("Content-Type: text/html; charset=UTF-8");
+            fcgi_headers_sent();
+            fcgi_echo("hello world,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
+            continue;
 
             ob_start();
             $this->clear_global();
             perfor_clear();
 
             perfor_start();
+
             Log::start_sql_log();
             init_request();
             init_cookie($_SERVER['HTTP_COOKIE']);
@@ -83,11 +94,11 @@ abstract class BaseServer
             $contents = ob_get_clean();
             fcgi_echo($contents);
             Log::end_sql_log();
-            $msg = sprintf("request time=%.6f\r\n\r\n",microtime(true) - $start);
+            $msg = sprintf("memory={$mem} request time=%.6f\r\n\r\n",microtime(true) - $start);
             Log::record($msg ,Log::DEBUG);
 
-            $perlog = perfor_log();
-            Log::record("perlog = {$perlog}" ,Log::DEBUG);
+//            $perlog = perfor_log();
+//            Log::record("perlog = {$perlog}" ,Log::DEBUG);
         }
 
         fcgi_fini();

+ 2 - 2
helper/http_header.php

@@ -255,14 +255,14 @@ class http_header
                         $method = strtolower(request_helper::method());
                         if ($http_response_code) { /* user specified redirect code */
                             $this->mStatusCode = $http_response_code;
-                        } else if ($method == 'get') {
+                        } elseif ($method == 'get') {
                             $this->mStatusCode = 303;
                         } else {
                             $this->mStatusCode = 302;
                         }
                     }
                 }
-                else if(!strncasecmp($header_line, "WWW-Authenticate",strlen("WWW-Authenticate"))) {
+                elseif(!strncasecmp($header_line, "WWW-Authenticate",strlen("WWW-Authenticate"))) {
                     $this->mStatusCode = 401;
                 }
             }

+ 17 - 17
mobile/mobile_run.php

@@ -52,22 +52,22 @@ StatesHelper::init();
 $listener = new message\subscriber($gMessageStates);
 $listener->start();
 
-//function sig_handler($signo)
-//{
-//    Log::record("queue quit at sig_handler.",Log::DEBUG);
-//    switch($signo) {
-//        case SIGINT:
-//        case SIGHUP:
-//        case SIGQUIT:
-//        case SIGTERM:
-//        default:
-//            break;
-//    }
-//}
-//
-//pcntl_signal(SIGINT,  'sig_handler');
-//pcntl_signal(SIGHUP,  'sig_handler');
-//pcntl_signal(SIGQUIT, 'sig_handler');
-//pcntl_signal(SIGTERM, 'sig_handler');
+function sig_handler($signo)
+{
+    Log::record("queue quit at sig_handler.",Log::DEBUG);
+    switch($signo) {
+        case SIGINT:
+        case SIGHUP:
+        case SIGQUIT:
+        case SIGTERM:
+        default:
+            break;
+    }
+}
+
+pcntl_signal(SIGINT,  'sig_handler');
+pcntl_signal(SIGHUP,  'sig_handler');
+pcntl_signal(SIGQUIT, 'sig_handler');
+pcntl_signal(SIGTERM, 'sig_handler');
 
 fcgisrv\MobileServer::instance()->run_looper();

+ 22 - 2
test/TestFcgi.php

@@ -11,6 +11,8 @@ require_once(BASE_CORE_PATH . '/lrlz.php');
 require_once(BASE_ROOT_PATH . '/fooder.php');
 
 require_once(BASE_CORE_PATH . '/framework/function/http.php');
+require_once(BASE_HELPER_PATH . '/refill/RefillFactory.php');
+require_once(BASE_HELPER_PATH . '/mtopcard/mtopcard.php');
 
 class TestFcgi extends TestCase
 {
@@ -21,8 +23,26 @@ class TestFcgi extends TestCase
 
     public function testEcho()
     {
-        $url = BASE_SITE_URL . '/mobile/index.php';
-        $resp = http_request($url);
+        $phone = '13911129867';
+        $amount = 100;
+        $url = BASE_SITE_URL . "/mobile/index.php";
+        $params = ['mchid' => 1,
+            'cardno' => $phone,
+            'amount' => $amount,
+            "act" => "refill",
+            "op" => "add",
+            'order_sn' => $this->make_sn(),
+            'notifyurl' => ""];
+        $proxy = new refill_proxy("1ff02223b771c0414468c8892151c602");
+        while (true) {
+            $resp = $proxy->send($url, $params);
+        }
     }
 
+    private function make_sn()
+    {
+        return mt_rand(1000, 9999)
+            . sprintf('%010d', time())
+            . sprintf('%06d', (float)microtime() * 1000000);
+    }
 }