簡體   English   中英

我希望我的php curl腳本一次處理50個以上的多個請求,而不會在服務器上掛起或放置負載

[英]I want my php curl script to handle more than 50 multiple requests at once without hanging or put load on server

我希望以下curl代碼對於來自不同ip的最多50個連接穩定,因此它可以輕松地一次處理多達50個連接請求,而無需掛起服務器或在服務器上增加很多負載。

其實我在共享主機上。 但是我希望這個curl腳本可以減輕服務器負載,即使..即使將來它一次獲得超過50或100個請求。 否則,如果我在共享托管服務器上放置高負載,則我的托管資源可能會受到管理員的限制。

我還要說的一件事是,每個請求都使用此curl腳本從遠程服務器獲取平均30kb的文件。 因此,我認為每個請求作業將在不到3秒的幾秒鍾內完成。 因為文件很小。

還請告訴我,此腳本是否需要任何修改,例如(curl_multi)一次面對50到100個小的請求? ...或者它是完美的,不需要任何修改。 ...或者我只需要通過cpanel對共享主機php ini設置進行更改。

$userid = $_GET['id'];

if (file_exists($userid.".txt") && (filemtime($userid.".txt") > (time() - 3600 * $ttime ))) {
$ffile = file_get_contents($userid.".txt");} else {
$dcurl = curl_init();
$ffile = fopen($userid.".txt", "w+");
curl_setopt($dcurl, CURLOPT_URL,"http://remoteserver.com/data/$userid");
curl_setopt($dcurl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($dcurl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($dcurl, CURLOPT_TIMEOUT, 50);
curl_setopt($dcurl, CURLOPT_FILE, $ffile);
$ffile = curl_exec($dcurl);

if(curl_errno($dcurl)) // check for execution errors
{
echo 'Script error: ' . curl_error($dcurl);
exit;
}
curl_close($dcurl);$ffile = file_get_contents($userid.".txt");}

您可以使用curl_multi
http://php.net/manual/zh/function.curl-multi-init.php-說明和示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM