channel 配置 初版
This commit is contained in:
45
src/main/java/com/sqx/nsqChannel/config/NSQConsumers.java
Normal file
45
src/main/java/com/sqx/nsqChannel/config/NSQConsumers.java
Normal file
@@ -0,0 +1,45 @@
|
||||
package com.sqx.nsqChannel.config;
|
||||
|
||||
import com.github.brainlag.nsq.NSQConsumer;
|
||||
import com.github.brainlag.nsq.lookup.DefaultNSQLookup;
|
||||
import com.github.brainlag.nsq.lookup.NSQLookup;
|
||||
|
||||
public class NSQConsumers {
|
||||
|
||||
private final String nsqLookupAddress;
|
||||
private final int nsqLookupPort;
|
||||
private final String topics;
|
||||
private final String channelName;
|
||||
private final NSQMessageHandlerAdapter handlerAdapter;
|
||||
private NSQConsumer consumer;
|
||||
|
||||
public NSQConsumers(String nsqLookupAddress, int nsqLookupPort,String topics, String channelName, NSQMessageHandlerAdapter handlerAdapter) {
|
||||
this.nsqLookupAddress = nsqLookupAddress;
|
||||
this.nsqLookupPort = nsqLookupPort;
|
||||
this.topics = topics;
|
||||
this.channelName = channelName;
|
||||
this.handlerAdapter = handlerAdapter;
|
||||
start();
|
||||
}
|
||||
|
||||
public void start() {
|
||||
try {
|
||||
NSQLookup lookup = new DefaultNSQLookup();
|
||||
lookup.addLookupAddress(nsqLookupAddress, nsqLookupPort);
|
||||
|
||||
consumer = new NSQConsumer(lookup, topics, channelName, (message) -> {
|
||||
handlerAdapter.handleMessage(message.getMessage());
|
||||
message.finished();
|
||||
});
|
||||
consumer.start();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void stop() {
|
||||
if (consumer != null) {
|
||||
consumer.shutdown();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.sqx.nsqChannel.config;
|
||||
|
||||
public abstract class NSQMessageHandlerAdapter {
|
||||
public abstract void handleMessage(byte[] message);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user