queue

来源:互联网 发布:吸毒人群数据 编辑:程序博客网 时间:2024/05/19 02:26

import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeoutException;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;

import kafka.consumer.ConsumerIterator;
import mcs.service.LbsService;
import mcs.utils.ConsumerUtil;
import mcs.utils.JsonPluginsUtil;
import mcs.utils.McsWarnUtils;
import mcs.utils.MessageIdUtils;

/**
* @version 创建时间:2017年5月17日 上午10:14:41
* 类说明
*/
@Controller
public class LbsController {
private final Logger log = Logger.getLogger(this.getClass());

Basket basket = new Basket();ExecutorService service = Executors.newCachedThreadPool();LbsController.Producer producer = null;@Autowiredprivate LbsService lbsService;public void getLbsTopic() {    log.info("进入getLbsTopic");    //获取消息逻辑服务器信息    ConsumerIterator<String, String> iter = new ConsumerUtil().getConsumer(topic_lbs);    while (iter.hasNext()) {        String jsonMessage = iter.next().message();        producer = this.new Producer(jsonMessage, basket);        service.submit(producer);    }}public void setUserStatusForChange() {    LbsController.Consumer consumer = this.new Consumer(basket);    service.submit(consumer);} public class Consumer implements Runnable {    private Basket basket;    public Consumer(Basket basket) {        this.basket = basket;    }    public void run() {             while (true) {                String jsonMessage=basket.consume();                                             }    }}public class Basket {    BlockingQueue<String> basket = new LinkedBlockingQueue<String>(10000);    public void produce(String lbsdata) throws InterruptedException {        basket.put(lbsdata);    }    public String consume() throws InterruptedException {        return basket.take();    }}public class Producer implements Runnable {   private String instance;   private Basket basket;   public Producer(String instance, Basket basket) {       this.instance = instance;       this.basket = basket;   }   public void run() {       try {          // while (true) {                basket.produce(instance);          // }       } catch (InterruptedException ex) {           System.out.println("Producer Interrupted");       }   }

}
}

原创粉丝点击