comysqli.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. declare(strict_types=0);
  3. define('MOBILE_SERVER', true);
  4. define('USE_COROUTINE', true);
  5. define('SUPPORT_PTHREAD', false);
  6. define('APP_ID', 'comysqli');
  7. define('BASE_ROOT_PATH', str_replace('/server', '', dirname(__FILE__)));
  8. define('BASE_PATH', BASE_ROOT_PATH . '/server');
  9. define('COROUTINE_HOOK_TCP',true);
  10. require_once(BASE_ROOT_PATH . '/global.php');
  11. require_once(BASE_ROOT_PATH . '/fooder.php');
  12. require_once(BASE_HELPER_PATH . '/refill_proxy.php');
  13. require_once(BASE_CORE_PATH . '/framework/function/http.php');
  14. require_once(BASE_CORE_PATH . '/framework/libraries/CoRefPool.php');
  15. require_once(BASE_CORE_PATH . '/framework/libraries/CoMysqliPool.php');
  16. require_once(BASE_CORE_PATH . '/framework/libraries/CoPool.php');
  17. require_once(BASE_CORE_PATH . '/framework/libraries/CoRedisPool.php');
  18. Co::set(['hook_flags' => SWOOLE_HOOK_NATIVE_CURL | SWOOLE_HOOK_SLEEP | SWOOLE_HOOK_TCP]);
  19. class MysqliPoolTest
  20. {
  21. public function setval()
  22. {
  23. for ($i = 0; $i < 2000; $i++)
  24. {
  25. Log::record("setval index = {$i}",Log::DEBUG);
  26. go(function ()
  27. {
  28. $mod_order = Model('vr_order');
  29. $order_info = $mod_order->getOrderInfo(['order_sn' => '4694820679086133084177']);
  30. $mod_orderx = Model('vr_order');
  31. $order_info = $mod_orderx->getOrderInfo(['order_sn' => '4694820679086133084177']);
  32. });
  33. }
  34. }
  35. public function readval()
  36. {
  37. for ($i = 0; $i < 2000; $i++)
  38. {
  39. Log::record("readval index = {$i}",Log::DEBUG);
  40. go(function ()
  41. {
  42. $mod_order = Model('vr_order');
  43. $order_info = $mod_order->getOrderInfo(['order_sn' => '4694820679086133084177']);
  44. $mod_orderx = Model('vr_order');
  45. $order_info = $mod_orderx->getOrderInfo(['order_sn' => '4694820679086133084177']);
  46. });
  47. }
  48. }
  49. }
  50. Swoole\Coroutine::set(['max_coroutine' => 500]);
  51. go(function ()
  52. {
  53. Base::run_util();
  54. $test = new MysqliPoolTest();
  55. go(function () use($test)
  56. {
  57. for ($i = 0; $i < 10; $i++)
  58. {
  59. Log::record("cur index = {$i}",Log::DEBUG);
  60. go(function () use($test)
  61. {
  62. $test->setval();
  63. });
  64. sleep(1);
  65. }
  66. });
  67. go(function () use($test)
  68. {
  69. for ($i = 0; $i < 10; $i++)
  70. {
  71. go(function () use($test)
  72. {
  73. $test->readval();
  74. });
  75. sleep(1);
  76. }
  77. });
  78. sleep(20);
  79. CoRedisPool::instance()->stop();
  80. CoMysqliPool::instance()->stop();
  81. });
  82. //docker-compose run phpswoole php /var/www/html/server/comysqli.php