{"id":628,"title":"hyperf\u534f\u7a0b\u5e94\u7528\u5b9e\u4f8b\u53ca\u534f\u7a0b\u6267\u884c\u6d41\u7a0b","good":0,"bad":0,"hit":1171,"created_at":"2024-01-18 22:40:01","content":"
hyperf\u4e2d\u534f\u7a0b\u7684\u51e0\u79cd\u5e94\u7528\u5b9e\u4f8b\uff1a<\/strong><\/p> \u8fd4\u56de\u7ed3\u679c\u5982\u4e0b\uff1a<\/strong><\/p> {<\/strong><\/p> "code": 200,<\/strong><\/p> "errors": {<\/strong><\/p> "msg": [<\/strong><\/p> {<\/strong><\/p> "eg1": [<\/strong><\/p> "www.hu-rong.com",<\/strong><\/p> "www.hu-rong.com"<\/strong><\/p> ],<\/strong><\/p> "eg2": [<\/strong><\/p> "www.hu-rong.com",<\/strong><\/p> "www.hu-rong.com"<\/strong><\/p> ],<\/strong><\/p> "eg3": {<\/strong><\/p> "parallel1": "www.hu-rong.com",<\/strong><\/p> "parallel2": "www.hu-rong.com"<\/strong><\/p> },<\/strong><\/p> "eg4": [<\/strong><\/p> "001223",<\/strong><\/p> "\u4e2d\u6587\u540d\u79f0"<\/strong><\/p> ]<\/strong><\/p> }<\/strong><\/p> ]<\/strong><\/p> }<\/strong><\/p> }<\/strong><\/p> <?php<\/span><\/p> declare(strict_types=1);<\/span><\/p> namespace App\\Controller;<\/span><\/p> use App\\Model\\StockCompany;<\/span><\/p> use App\\Request\\StockIndexRequest;<\/span><\/p> use App\\Service\\StockService;<\/span><\/p> use App\\Service\\UserService;<\/span><\/p> use Hyperf\\Di\\Annotation\\Inject;<\/span><\/p> use Hyperf\\Utils\\Parallel;<\/span><\/p> use Hyperf\\View\\RenderInterface;<\/span><\/p> use Swoole\\Coroutine\\Channel;<\/span><\/p> use Hyperf\\Utils\\WaitGroup;<\/span><\/p> class IndexController extends AbstractController<\/span><\/p> {<\/span><\/p> public function test()<\/span><\/p> {<\/span><\/p> return $this->responseSuccess(<\/span><\/p> [<\/span><\/p> 'eg1' => self::_test1(),<\/span><\/p> 'eg2' => self::_test2(),<\/span><\/p> 'eg3' => self::_test3(),<\/span><\/p> 'eg4' => self::_test4(),<\/span><\/p> ]<\/span><\/p> );<\/span><\/p> }<\/span><\/p> private function _test4()<\/span><\/p> {<\/span><\/p> $result = parallel([<\/span><\/p> function () {<\/span><\/p> \/\/\u6ce8\u610f:\u8981\u7528return\u8fd4\u56de\u7ed3\u679c<\/span><\/p> return StockCompany::first()->code;<\/span><\/p> },<\/span><\/p> function () {<\/span><\/p> return StockCompany::first()->stock_name;<\/span><\/p> }<\/span><\/p> ]);<\/span><\/p> return $result;<\/span><\/p> }<\/span><\/p> private function _test3()<\/span><\/p> {<\/span><\/p> $parallel = new Parallel();<\/span><\/p> $parallel->add(function () {<\/span><\/p> var_dump('parallel-step-1');<\/span><\/p> return self::_me();\/\/\u6ce8\u610f:\u8981\u7528return\u8fd4\u56de\u7ed3\u679c<\/span><\/p> }, 'parallel1');<\/span><\/p> $parallel->add(function () {<\/span><\/p> var_dump('parallel-step-3');<\/span><\/p> return self::_me();<\/span><\/p> }, 'parallel2');<\/span><\/p> var_dump('parallel-step-3');<\/span><\/p> $result = $parallel->wait();<\/span><\/p> var_dump('parallel-step-4');<\/span><\/p> return $result;<\/span><\/p> }<\/span><\/p> private function _test2()<\/span><\/p> {<\/span><\/p> $wg = new WaitGroup();<\/span><\/p> $result = [];<\/span><\/p> var_dump('waitgroup-step-1');<\/span><\/p> $wg->add(2);<\/span><\/p> co(function () use ($wg, &$result) {<\/span><\/p> var_dump('waitgroup-step-2');<\/span><\/p> $result[] = self::_me();<\/span><\/p> var_dump('waitgroup-step-3');<\/span><\/p> $wg->done();<\/span><\/p> var_dump('waitgroup-step-4');<\/span><\/p> });<\/span><\/p> co(function () use ($wg, &$result) {<\/span><\/p> var_dump('waitgroup-step-5');<\/span><\/p> $result[] = self::_me();<\/span><\/p> var_dump('waitgroup-step-6');<\/span><\/p> $wg->done();<\/span><\/p> var_dump('waitgroup-step-7');<\/span><\/p> });<\/span><\/p> var_dump('waitgroup-step-8');<\/span><\/p> $wg->wait();<\/span><\/p> var_dump('waitgroup-step-9');<\/span><\/p> return $result;<\/span><\/p> }<\/span><\/p> chnnale\u65b9\u5f0f\u53ca\u6267\u884c\u6d41\u7a0b\uff1a\u5176\u5b83\u51e0\u79cd\u65b9\u5f0f\u4e5f\u662f\u7c7b\u4f3c\u7684\uff0c\u9047\u5230\u963b\u585e\u5c06\u4f1a\u8fdb\u884c\u534f\u7a0b\u5207\u6362<\/span><\/p> <\/span><\/p> string(14) "channel-step-1"<\/span><\/p> string(14) "channel-step-2"<\/span><\/p> string(14) "channel-step-4"<\/span><\/p> string(14) "channel-step-5"<\/span><\/p> string(14) "channel-step-7"<\/span><\/p> [INFO] \u3010request\u3011:url:https:\/\/api.hu-rong.com\/about,method:get,\u53c2\u6570:[]<\/span><\/p> [INFO] \u3010request\u3011:url:https:\/\/api.hu-rong.com\/about,method:get,\u53c2\u6570:[]<\/span><\/p> [INFO] \u3010request-result\u3011{"banners":["https:\\\/\\\/api.hu-rong.com\\https:\/\/api.hu-rong.com\/uploads\\\/good\\\/20140321112913s.jpg","https:\\\/\\\/api.hu-rong.c<\/span><\/p> [INFO] \u3010request-result\u3011{"banners":["https:\\\/\\\/api.hu-rong.com\\https:\/\/api.hu-rong.com\/uploads\\\/good\\\/20140321112913s.jpg","https:\\\/\\\/api.hu-rong.c<\/span><\/p> string(14) "channel-step-6"<\/span><\/p>
<\/p>
<\/span><\/p>
<\/span><\/p>
<\/span><\/p>
<\/span><\/p>
<\/span><\/p>
<\/p>
<\/span><\/p>
<\/span><\/p>
<\/span><\/p>
<\/span><\/p>