ہر Guzzle کام کا پراکسی اُس غیر ہم وقت عملیے پر رکھیں جو پول شروع کرتا ہے۔ موجودہ کلائنٹ ترتیب کے اندر وعدہ فیکٹریاں استعمال کریں:

$operations = function () use ($client, $jobs) {
    foreach ($jobs as $id => $job) {
        yield $id => function () use ($client, $job) {
            return $client->requestAsync('GET', $job['url'], [
                'proxy' => $job['proxy'],
                'timeout' => 20,
            ]);
        };
    }
};

$pool = new GuzzleHttp\Pool($client, $operations(), [
    'concurrency' => 4,
]);
$pool->promise()->wait();

ہر توثیق شدہ کام ایک منزل اور ایک پراکسی فراہم کرتا ہے۔ اجازت یافتہ عوامی درخواست کے لیے، HTTP پراکسی فہرست سے کوئی HTTP امیدوار اُس کام کا بغیر اسناد پراکسی URL فراہم کر سکتا ہے؛ انتخاب اُس کی فیکٹری چلنے سے پہلے ہوتا ہے۔ PSR-7 درخواست HTTP پیغام کی وضاحت کرتی ہے، جبکہ یہ بھیجنے کے اختیارات نقل و حمل کو کنٹرول کرتے ہیں۔ پیغام کے ساتھ پراکسی قدر چھاپنا یا محفوظ کرنا ایسا عملیہ ترتیب نہیں دے سکتا جو اُسے کسی اور طریقے سے بھیجے۔

فیکٹری سے requestAsync() واپس کریں۔ وہاں ہم وقت request() کال کرنا روک سکتا ہے جب پول بیک وقت کام شروع کرنے کی کوشش کر رہا ہو۔

ایپلیکیشن کی موجودہ ہینڈلنگ استعمال کرتے ہوئے مکمل اور مسترد کال بیک شامل کریں۔ کام کی کلید، منتخب پراکسی شناخت اور کوشش نمبر دونوں نتائج میں رکھیں؛ تکمیل کی ترتیب اِن پٹ ترتیب سے مختلف ہوتی ہے۔ کام کے لیے ایک درج کرنے کے بعد فیکٹری میں خفیہ طور پر دوسرا اینڈ پوائنٹ نہ چنیں۔

ہم وقتی قدر اس پول کے کام کو محدود کرتی ہے۔ ایک ہی محدود پراکسی یا اکاؤنٹ چننے والے کئی کاموں کو پھر بھی اُس اینڈ پوائنٹ کے لیے الگ بجٹ درکار ہو سکتا ہے۔

نتائج کی تشریح مرحلے کے مطابق کریں: منزل کی مستردگی، پراکسی توثیق اور کنکشن ٹائم آؤٹ مختلف نتائج ہیں۔ کام کے ساتھ رکھے بھیجنے کے اختیارات دکھاتے ہیں کہ کس راستے نے ہر نتیجہ دیا۔

متعلقہ مضامین