มีวิธีจัดการกับ cURL ไม่ให้กิน Process เยอะบ้างมั้ยครับ

เริ่มโดย aon_cb, 25 ตุลาคม 2009, 00:09:08

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

aon_cb

ผมใช้สคริป cURL ในเว็บ เพจวิวประมาณ 30,000-40,000 ครั้งต่อวัน
แต่เว็บมักจะเข้าช้ามากกกกก บางครั้งถึงกับ request time out ไปเลย แล้วก็เป็นบ่อยๆ เลยเอาสคริปออกไป ปรากฎว่าเร็วขึ้นทันตา

สสคริปเป็นประมาณนี้ครับ



<?
$url="http://www.hdtvmagazine.com/";
function replaceLink($data){
$data= str_replace("<meta name=\"description\" content=\"", "", $data);
return $data;
}
function callArticle(){
global $url;
$user_agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST,0);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);

$result = curl_exec($ch);
$start_result = strpos($result,"<meta name=\"description\" content=\"");
$end_result = strpos($result,"\" />",$start_result+5);
$substring .= substr($result,$start_result,$end_result-$start_result);
curl_close ($ch);
return replaceLink($substring);
}
?>
<? echo callArticle();?>



เป็นสคริปดึงข้อมูลจากเว็บอื่นมาแสดง เว็บที่ไปดึงก็อยู่ประเทศเดียวกัน แต่คนละรัฐ มีวิธีจัดการให้มันเร็วกว่านี้รึเปล่าครับ เพราะหน้าที่มีสคริปนี้ถูกเรียกพร้อมกันหลายพันครั้ง

Server Ram 2GB ครับ

TAXZe

[direct=https://www.taxze.com/ups-review/]รีวิว ups[/direct][direct=https://www.taxze.com/ups-review/]ups ยี่ห้อไหนดี[/direct][direct=https://twitter.com/taxze][/direct][direct=https://www.instagram.com/taxze][/direct][direct=https://rrbg.blogspot.com/][/direct]


cracky

ทำ cache เลยครับ

1.เอา URL ที่ไปดึงมาเก็บไว้ในดาต้าเบส
2.ไปดึงข้อมูลจาก URL นี้่ และบันทึกในรูปแบบ text file ไว้ในโฟลเดอร์ cache

3.ในดาต้าเบส ก็ใส่วันที่ลงไป ว่า URL นี้ เคยดึงล่าสุดวันไหน
4.ถ้ามีการเรียก URL เดิมอีกครั้ง ให้ไปเอาข้อมูลใน text file มาแสดงแทน
5.ทุกครั้งที่มีการ view เช็คว่า URL นี้ดึงล่าสุดวันไหน เราอาจจะตั้งว่า ถ้าเกิน 2 วัน ให้ไปดึงข้อมูลจากเว็ปจริงอีกครั้งหนึ่ง

วิธีนี้ชัวร์สุดครับ อย่างน้อย 2 วันจะต้องมี user คนนึงที่รู้สึกว่าดึงช้าจัง แต่คนอื่นๆก็จะเร้วเท่าเดิม
[direct=http://heart.3dsinteractive.com]My Blog[/direct]

aon_cb

เรื่องทำ Cache เห็นทีจะไม่ได้อะครับ เพราะข้อมูลตรงส่วนที่จะไปดึงมามันเป็นลิงค์ครับ
ข้อมูลที่จะไปดึงมา ปะมาณนี้ครับ   http://domain.com/readArticle.php?token=E5C21FA7-2277-4BB7-8AC1-00018637F3E9
จะเห็นว่าค่า token มันเปลี่ยนทุกๆ ครั้งที่ไปดึง ยังไงก็ต้องดึงมาทุกๆ ครั้งอยู่แล้วครับ

ที่ผมอยากจะถามเพิ่มเติมคือ การทำ socket มันคือประมาณไหนอะครับมี Sample code บ้างมั้ยครับ

digitalex

เปิด socket มันก็คล้ายๆกับพวก curl / file_get_content ล่ะครับ
แต่ทำงานในระดับต่ำกว่าก็เร็วกว่า (อธิบายไม่ค่อยถูก)
รอท่านอื่น มาเหลาต่อ
http://th2.php.net/manual/en/function.fsockopen.php

aon_cb


EThaiZone

วิธีเขียนโค้ดเปิด socket ที่ง่ายที่สุดคือ
ศึกษาวิธีการใช้ fsockopen ก่อน
แล้วหา sniffer สักตัวมาใช้

แล้วลองเปิดเว็บที่ต้องการด้วย browser
แล้วเปิดดูค่าที่ดักใน sniffer หาค่า http header มา

ก็เอามาใช้ในการเปิด socket ได้เลย
ไม่ต้องเขียน header เอง สบายๆ

:wanwan020:

mean

ทำ cache เองครับ แน่นอน และอย่า refresh ๆๆ
และ ทำ cache ไปให้ user ด้วย

ดึงมาลง text file ไว้ครับ แล้วดึงโชว์


[direct=https://www.ireallyhost.com/]บริการโดเมน, เว็บโฮสติ้ง, SSL Certificate[/direct]
[direct=https://www.ireallyhost.com/ssl]บริการ SSL Certificate , HTTPS สำหรับเว็บไซต์[/direct]
[direct=https://www.ireallyhost.com/]บริการ Web Hosting Free! Domain name ตลอดอายุบริการ [/direct]
[direct=https://www.ireallyhost.com/domain]บริการ จดโดเมน, Free DNS Service, Domain Forwarding, จัดการโดเมนได้เอง Domain Control Panel[/direct

ttuunn

 :wanwan003:
ครับ เก็บในรูป txt file ผมกำลังทำอยู่ ไวดีครับ กำลังศึกษาแบบจริงๆจัง
น่าสนใจมากๆครับสำหรับเว็บใหญ่โต
[direct=http://www.click2studio.com/vip-truemoney/index.php][/direct]
[direct=http://www.thaiseoboard.com/index.php/topic,355732.0.html]ขายสคริปวีดีโอออนไลน์ ตัดบัตรเงินสด Auto ส่ง User Pass ไปยัง sms มือถือท่าน[/direct]
[direct=http://www.click2studio.com]รับทำเว็บรับทำสคริปวาไรตี้,ภาพยนตร์,เว็บบอร์ด,หาเพื่อน,อัลบัม,อื่นๆมากมาย  เว็บเป็นเอกลักษณ์ไม่จำเจ[/direct]