Path: blob/master/src/applications/feed/worker/FeedPublisherHTTPWorker.php
12241 views
<?php12final class FeedPublisherHTTPWorker extends FeedPushWorker {34protected function doWork() {5if (PhabricatorEnv::getEnvConfig('phabricator.silent')) {6// Don't invoke hooks in silent mode.7return;8}910$story = $this->loadFeedStory();11$data = $story->getStoryData();1213$uri = idx($this->getTaskData(), 'uri');14$valid_uris = PhabricatorEnv::getEnvConfig('feed.http-hooks');15if (!in_array($uri, $valid_uris)) {16throw new PhabricatorWorkerPermanentFailureException();17}1819$post_data = array(20'storyID' => $data->getID(),21'storyType' => $data->getStoryType(),22'storyData' => $data->getStoryData(),23'storyAuthorPHID' => $data->getAuthorPHID(),24'storyText' => $story->renderText(),25'epoch' => $data->getEpoch(),26);2728// NOTE: We're explicitly using "http_build_query()" here because the29// "storyData" parameter may be a nested object with arbitrary nested30// sub-objects.31$post_data = http_build_query($post_data, '', '&');3233id(new HTTPSFuture($uri, $post_data))34->setMethod('POST')35->setTimeout(30)36->resolvex();37}3839public function getWaitBeforeRetry(PhabricatorWorkerTask $task) {40return max($task->getFailureCount(), 1) * 60;41}4243}444546