ಪ್ರತಿ 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() ಕರೆಯುವುದು ಪೂಲ್ ಸಮಕಾಲೀನ ಕೆಲಸ ಪ್ರಾರಂಭಿಸಲು ಪ್ರಯತ್ನಿಸುವಾಗ ನಿರ್ಬಂಧಿಸಬಹುದು.

ಅಪ್ಲಿಕೇಶನ್‌ನ ಇರುವ ನಿರ್ವಹಣೆಯನ್ನು ಬಳಸಿ ಪೂರ್ಣಗೊಂಡ ಮತ್ತು ತಿರಸ್ಕರಿಸಿದ ಕಾಲ್‌ಬ್ಯಾಕ್‌ಗಳನ್ನು ಸೇರಿಸಿ. ಕೆಲಸದ ಕೀ, ಆಯ್ಕೆಮಾಡಿದ ಪ್ರಾಕ್ಸಿ ಗುರುತು ಮತ್ತು ಪ್ರಯತ್ನ ಸಂಖ್ಯೆಯನ್ನು ಎರಡೂ ಫಲಿತಾಂಶಗಳಲ್ಲಿ ಇರಿಸಿ; ಪೂರ್ಣಗೊಳಿಸುವ ಕ್ರಮವು ಇನ್‌ಪುಟ್ ಕ್ರಮಕ್ಕಿಂತ ಭಿನ್ನವಾಗಿದೆ. ಕೆಲಸಕ್ಕೆ ಒಂದನ್ನು ದಾಖಲಿಸಿದ ನಂತರ ಫ್ಯಾಕ್ಟರಿಯಲ್ಲಿ ರಹಸ್ಯವಾಗಿ ಇನ್ನೊಂದು ಎಂಡ್‌ಪಾಯಿಂಟ್ ಆಯ್ಕೆ ಮಾಡಬೇಡಿ.

ಸಮಕಾಲೀನತೆಯ ಮೌಲ್ಯವು ಈ ಪೂಲ್‌ನ ಕೆಲಸವನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತದೆ. ಒಂದೇ ಮಿತಿಯ ಪ್ರಾಕ್ಸಿ ಅಥವಾ ಖಾತೆಯನ್ನು ಆಯ್ಕೆಮಾಡುವ ಹಲವು ಕೆಲಸಗಳಿಗೆ ಇನ್ನೂ ಆ ಎಂಡ್‌ಪಾಯಿಂಟ್‌ಗೆ ಪ್ರತ್ಯೇಕ ಬಜೆಟ್ ಬೇಕಾಗಬಹುದು.

ಫಲಿತಾಂಶಗಳನ್ನು ಹಂತದ ಪ್ರಕಾರ ಅರ್ಥೈಸಿ: ಗಮ್ಯಸ್ಥಾನದ ತಿರಸ್ಕಾರ, ಪ್ರಾಕ್ಸಿ ದೃಢೀಕರಣ ಮತ್ತು ಸಂಪರ್ಕದ ಸಮಯ ಮೀರುವಿಕೆ ವಿಭಿನ್ನ ಫಲಿತಾಂಶಗಳು. ಕೆಲಸದೊಂದಿಗೆ ಇರಿಸಿದ ಕಳುಹಿಸುವ ಆಯ್ಕೆಗಳು ಯಾವ ಮಾರ್ಗವು ಪ್ರತಿ ಫಲಿತಾಂಶವನ್ನು ನೀಡಿತು ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತವೆ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು