From 1d94d49c171c95d7238c49a32595156a90232ca5 Mon Sep 17 00:00:00 2001 From: macvicar Date: Fri, 8 Jun 2012 00:06:26 -0700 Subject: [PATCH] [elasticsearch] Add timeout to API calls Summary: Default of 300 seconds is more than likely too much in most cases. Provide the option to override. Test Plan: Blocked ElasticSearch with iptables Set timeout to 5 seconds and make sure we error early Reviewers: epriestley, vrana Reviewed By: vrana CC: aran, Korvin Differential Revision: https://secure.phabricator.com/D2678 --- .../engine/PhabricatorSearchEngineElastic.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/applications/search/engine/PhabricatorSearchEngineElastic.php b/src/applications/search/engine/PhabricatorSearchEngineElastic.php index d7036a1b09..299e5d6cdf 100644 --- a/src/applications/search/engine/PhabricatorSearchEngineElastic.php +++ b/src/applications/search/engine/PhabricatorSearchEngineElastic.php @@ -18,11 +18,21 @@ final class PhabricatorSearchEngineElastic extends PhabricatorSearchEngine { private $uri; + private $timeout; public function __construct($uri) { $this->uri = $uri; } + public function setTimeout($timeout) { + $this->timeout = $timeout; + return $this; + } + + public function getTimeout() { + return $this->timeout; + } + public function reindexAbstractDocument( PhabricatorSearchAbstractDocument $doc) { @@ -206,6 +216,10 @@ final class PhabricatorSearchEngineElastic extends PhabricatorSearchEngine { $future->setMethod('GET'); } + if ($this->getTimeout()) { + $future->setTimeout($this->getTimeout()); + } + list($body) = $future->resolvex(); if ($is_write) {