Ik ben bezig met een Magento koppeling die heel veel API requests moet doen (denk aan ~50.000 - 100.000). Nu kan ik deze requests wel allemaal achter elkaar doen, maar dan heeft het script een paar uur nodig.
Om het proces te versnellen wilde ik aysnchrone requests doen naar een ander script die per keer 1-4 API requests doet.
Ik kwam iets tegen als bijvoorbeeld:
Op zich werkt dit denk ik prima, maar nu krijg ik natuurlijk helemaal geen response meer terug. Op zich geen probleem, maar hoe kan ik nu controleren of de Magento API de requests wel verwerkt en niet een heleboel requests aan het ophopen is?
Iemand hier ervaring mee?
Edit: Net even getest, zonder kijken of het request verwerkt is en elke 3 seconden 5 requests vuren resulteert in een DDoS van de server.
Om het proces te versnellen wilde ik aysnchrone requests doen naar een ander script die per keer 1-4 API requests doet.
Ik kwam iets tegen als bijvoorbeeld:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| function backgroundPost($url){ $parts=parse_url($url); $fp = fsockopen($parts['host'], isset($parts['port'])?$parts['port']:80, $errno, $errstr, 30); if (!$fp) { return false; } else { $out = "POST ".$parts['path']." HTTP/1.1\r\n"; $out.= "Host: ".$parts['host']."\r\n"; $out.= "Content-Type: application/x-www-form-urlencoded\r\n"; $out.= "Content-Length: ".strlen($parts['query'])."\r\n"; $out.= "Connection: Close\r\n\r\n"; if (isset($parts['query'])) $out.= $parts['query']; fwrite($fp, $out); fclose($fp); return true; } } |
Op zich werkt dit denk ik prima, maar nu krijg ik natuurlijk helemaal geen response meer terug. Op zich geen probleem, maar hoe kan ik nu controleren of de Magento API de requests wel verwerkt en niet een heleboel requests aan het ophopen is?
Iemand hier ervaring mee?
Edit: Net even getest, zonder kijken of het request verwerkt is en elke 3 seconden 5 requests vuren resulteert in een DDoS van de server.
[ Voor 5% gewijzigd door bindsa op 26-06-2012 21:07 ]