[
https://issues.apache.org/jira/browse/NUTCH-2132?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15428835#comment-15428835
]
ASF GitHub Bot commented on NUTCH-2132:
---------------------------------------
Github user lewismc commented on a diff in the pull request:
https://github.com/apache/nutch/pull/138#discussion_r75551899
--- Diff:
src/plugin/publish-rabbitmq/src/java/org/apache/nutch/publisher/rabbitmq/RabbitMQPublisherImpl.java
---
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nutch.publisher.rabbitmq;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.util.StringUtils;
+import org.apache.nutch.publisher.NutchPublisher;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.rabbitmq.client.Channel;
+import com.rabbitmq.client.Connection;
+import com.rabbitmq.client.ConnectionFactory;
+
+public class RabbitMQPublisherImpl implements NutchPublisher{
+
+ private static String EXCHANGE_SERVER;
+ private static String EXCHANGE_TYPE;
+ private static String HOST;
+ private static final Logger LOG =
LoggerFactory.getLogger(RabbitMQPublisherImpl.class);
+ private static Channel channel;
+
+ @Override
+ public boolean setConfig(Configuration conf) {
+ // TODO Auto-generated method stub
+ try{
+ EXCHANGE_SERVER = conf.get("rabbitmq.exchange.server", "fetcher_log");
+ EXCHANGE_TYPE = conf.get("rabbitmq.exchange.type", "fanout");
+ HOST = conf.get("rabbitmq.host", "localhost");
+ ConnectionFactory factory = new ConnectionFactory();
+ factory.setHost(HOST);
+
+ Connection connection = factory.newConnection();
+ channel = connection.createChannel();
+ channel.exchangeDeclare(EXCHANGE_SERVER, EXCHANGE_TYPE);
+ LOG.info("Configured RabbitMQ publisher");
+ return true;
+ }catch(Exception e) {
+ LOG.error("Could not initialize RabbitMQ publisher - {}",
StringUtils.stringifyException(e));
+ return false;
+ }
+
+ }
+
+ @Override
+ public void publish(Object event, Configuration conf) {
+ // TODO Auto-generated method stub
--- End diff --
Remove
> Publisher/Subscriber model for Nutch to emit events
> ----------------------------------------------------
>
> Key: NUTCH-2132
> URL: https://issues.apache.org/jira/browse/NUTCH-2132
> Project: Nutch
> Issue Type: New Feature
> Components: fetcher, REST_api
> Reporter: Sujen Shah
> Assignee: Chris A. Mattmann
> Labels: memex
> Fix For: 1.13
>
> Attachments: NUTCH-2132.patch, NUTCH-2132.v2.patch,
> PubSub_routingkey.patch
>
>
> It would be nice to have a Pub/Sub model in Nutch to emit certain events (ex-
> Fetcher events like fetch-start, fetch-end, a fetch report which may contain
> data like outlinks of the current fetched url, score, etc).
> A consumer of this functionality could use this data to generate real time
> visualization and generate statics of the crawl without having to wait for
> the fetch round to finish.
> The REST API could contain an endpoint which would respond with a url to
> which a client could subscribe to get the fetcher events.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)