Skip to content
Snippets Groups Projects
Commit 881e8ed4 authored by xujingfeng's avatar xujingfeng
Browse files

add spi

parent 9bd1228f
No related branches found
No related tags found
No related merge requests found
package com.aliware.tianchi;
import org.apache.dubbo.rpc.listener.CallbackListener;
/**
* @author daofeng.xjf
*/
public class CallbackListenerImpl implements CallbackListener {
@Override
public void receiveServerMsg(String msg) {
System.out.println("receive msg from server :" + msg);
}
}
com.aliware.tianchi.CallbackListenerImpl
\ No newline at end of file
package com.aliware.tianchi;
import org.apache.dubbo.common.extension.SPI;
import org.apache.dubbo.rpc.listener.CallbackListener;
import org.apache.dubbo.rpc.service.CallbackService;
import java.util.Date;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author daofeng.xjf
*/
public class CallbackServiceImpl implements CallbackService {
public CallbackServiceImpl() {
timer.schedule(new TimerTask() {
@Override
public void run() {
if (!listeners.isEmpty()) {
for (Map.Entry<String, CallbackListener> entry : listeners.entrySet()) {
try {
entry.getValue().receiveServerMsg(new Date().toString());
} catch (Throwable t1) {
listeners.remove(entry.getKey());
}
}
}
}
}, 5000, 5000);
}
private Timer timer = new Timer();
/**
* key: listener type
* value: callback listener
*/
private final Map<String, CallbackListener> listeners = new ConcurrentHashMap<>();
@Override
public void addListener(String key, CallbackListener listener) {
listeners.put(key, listener);
listener.receiveServerMsg(new Date().toString()); // send notification for change
}
}
com.aliware.tianchi.CallbackServiceImpl
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment