public function processFeed($url, $data)
    {
        $logger = $this->getLogger();
        $logger->info('Processing feed', array('url' => $url));
        $logger->debug('Received feed data', array('data' => $data));

        try {
            $new = iterator_to_array(FeedReader::importString($data));
            $old = isset($this->cache[$url]) ? $this->cache[$url] : array();
            $diff = $this->getNewFeedItems($new, $old);
            if ($old) {
                $this->syndicateFeedItems($diff);
            }
            $this->cache[$url] = $new;
        } catch (\Exception $e) {
            $logger->warning(
                'Failed to process feed',
                array(
                    'url' => $url,
                    'data' => $data,
                    'error' => $e,
                )
            );
        }

        $this->queuePoll($url);
    }