Domů > php > Jak na výpadek služby Twitter při použití Zend_Service_Twitter

Jak na výpadek služby Twitter při použití Zend_Service_Twitter

Během dneška (6.8.2009) byl výpadek služby Twitter a koukal jsem, že mi to položilo php-frameworks.net na kolena.

Jak jsem se zjišťovat co s tím a proč mi to hlásí:

Zend_Http_Client_Adapter_Exception: Unable to Connect to tcp://twitter.com:80. Error #110: Connection timed out in /srv/lib/php/Zend/Http/Client/Adapter/Socket.php on line 213

Tento kód nějak selhal a výpadek nastal dříve, asi to vypadá na nějakou chybu v Zendu, protože se Zend_Service_Twitter_Exception nevrátí i při výpadku spojení jak jsem očekával.

try {
	$twitter = new Zend_Service_Twitter($config->twitter->username, $config->twitter->password);
} catch (Zend_Service_Twitter_Exception $e) {
	$this->logger->err("Exception caught importing twitter: {$e->getMessage()}\n");
}

Řešení je otestovat vlastní připojení předem ke kterému jsem se nakonec uchýlil.

		// Testing connect to twitter
		try {
		$client = new Zend_Http_Client('http://twitter.com', array(
			'maxredirects' => 0,
			'timeout'      => 5));
		$response = $client->request();
		} catch (Zend_Http_Client_Adapter_Exception $e) {
			$this->logger->err("Exception caught connect twitter: {$e->getMessage()}\n");
		}

		// if have $response try connect twitter
		if (isset($response)) {
			try {
				$twitter = new Zend_Service_Twitter($config->twitter->username, $config->twitter->password);
			} catch (Zend_Service_Twitter_Exception $e) {
				$this->logger->err("Exception caught importing twitter: {$e->getMessage()}\n");
			}
			if (isset($twitter)) {
			$response = $twitter->status->friendsTimeline(array("count" => $config->twitter->count));
			$this->view->twitter = $response;
			} else {
			$this->view->twitter = null;
			}
		}
Categories: php Tags: ,
  • Já to brzdění načtení webu vyřešil AJAXem ;) Ale ta finta s Z_HTTP_Client je fajn. I když by možná stačilo jen načíst obsah jednou fcí a nenačítat kvuli tomu celou mašinerii Z_HTTP_Client ;)
  • Callo
    Toto jsem již řešil před několika měsíci. Občas se stává, že twitter prostě vypadne (max 1 minuta, teď to byl extrém), nebo má dlouhou odezvu (brzdilo to načtení celého webu). Rozhodl jsem se to řešit, že si sbírám Twittery do databáze přes 10 minutový cron a na webu je zobrazuji ze svoji DB.
blog comments powered by Disqus

Switch to our mobile site