Storm【实践系列-如何写一个爬虫-】6 URLInjector


  介绍: URLInjector,我封装了的一个简单的客户端,我们将要放URLs,到一个分片队列里面 【sharded queue】,只有放置到分片队列的数据才会被Storm的管线所处理。

package com.digitalpebble.storm.crawler;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

import com.digitalpebble.storm.crawler.util.Configuration;
import com.digitalpebble.storm.fetchqueue.ShardedQueue;


public class URLInjector {

	private ShardedQueue queue;

	URLInjector() throws Exception {
		Configuration config = StormConfiguration.create();
		queue = ShardedQueue.getInstance(config);
	}

	public void add(String url) {
		try {
			queue.add(url);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void close() {
		queue.close();
	}

	public static void main(String[] args) throws Exception {
		String messages = args[0];
		URLInjector client = new URLInjector();
		BufferedReader reader = new BufferedReader(new FileReader(new File(
				messages)));
		String line = null;
		while ((line = reader.readLine()) != null) {
			client.add(line.trim());
		}
		reader.close();
		client.close();
	}

}

    用来作为测试。有关ShardedQueue,请参看本ID的另外一篇博文: Storm【实践系列-如何写一个爬虫-】6 .1ShardedQueue 


        simple tips~

你可能感兴趣的:(Storm【实践系列-如何写一个爬虫-】6 URLInjector)