


Terangkan cara melaksanakan perangkak berbilang benang dalam thinkphp5.1
Nov 03, 2021 pm 04:06 PMLajur tutorial thinkphp berikut akan menerangkan kepada anda thinkphp5.1 menggunakan pustaka kelas Guzzle baris arahan cli untuk melaksanakan perangkak berbilang benang, saya harap ia dapat membantu rakan yang memerlukan.
Buat perintah cli
php think make:command Thread thread
Uji sama ada ia boleh dilaksanakan dengan jayanya
php think thread
Pasang pustaka kelas Guzzle
Alamat dokumen: alamat dokumen guzzle (https://guzzle-cn.readthedocs.io/zh_CN/latest/quickstart.html)
Kod pelaksanaan
<?php /** * Created by. * User: Jim * Date: 2020/9/29 * Time: 14:31 */ namespace app\command; use GuzzleHttp\Client; use GuzzleHttp\Pool; use think\console\Command; use think\console\Input; use think\console\Output; /** * Guzzle * Class Thread * @package app\command * 文檔地址 https://guzzle-cn.readthedocs.io/zh_CN/latest/quickstart.html */ class Thread extends Command { /** * 請求的總次數(shù) * @var int */ protected $totalPageCount = 50; /** * 當(dāng)前請求的次數(shù) * @var int */ protected static $counter = 1; /** * 線程的數(shù)量 * @var int */ protected $threads = 20; protected function configure() { // 指令配置 $this->setName('thread'); // 設(shè)置參數(shù) } protected function execute(Input $input, Output $output) { $client = new Client(); $requests = function ($total) use ($client) { foreach (range(1, $total) as $r) { $uri = 'https://apinew.juejin.im/content_api/v1/short_msg/detail'; yield function () use ($client, $uri) { return $client->postAsync($uri, [ 'verify' => false, 'json' => [ 'msg_id' => '6845185452727599118' ] ]); }; } }; $pool = new Pool($client, $requests($this->totalPageCount), [ 'concurrency' => $this->threads, // 請求成功 'fulfilled' => function ($response, $index) use ($output) { $res = $response->getBody()->getContents(); $output->writeln($res); $output->writeln("正在執(zhí)行第{$index}個·····"); if ($this->checkThreadIsEnd() == true) { $output->writeln("------------請求結(jié)束---------"); return false; } }, // 請求失敗 'rejected' => function ($reason, $index) use ($output) { $output->writeln("執(zhí)行失敗,{$reason}"); }, ]); $promise = $pool->promise(); $promise->wait(); } /** * 檢測任務(wù)是否結(jié)束 * @return bool */ private function checkThreadIsEnd() { if (self::$counter < $this->totalPageCount) { self::$counter++; return false; } else { return true; } } }
Laksanakan arahan
php think thread
Kesan
Atas ialah kandungan terperinci Terangkan cara melaksanakan perangkak berbilang benang dalam thinkphp5.1. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)