📄 messagedispatchertest.java
字号:
// $Id: MessageDispatcherTest.java,v 1.14 2005/08/29 12:19:11 belaban Exp $package org.jgroups.tests;import org.jgroups.Channel;import org.jgroups.JChannel;import org.jgroups.Message;import org.jgroups.blocks.GroupRequest;import org.jgroups.blocks.MessageDispatcher;import org.jgroups.blocks.RequestHandler;import org.jgroups.util.RspList;import org.jgroups.util.Util;/** * Example for MessageDispatcher (see also RpcDispatcherTest). Message is periodically broadcast to all * members; handle() method is invoked whenever a message is received. */public class MessageDispatcherTest implements RequestHandler { Channel channel; MessageDispatcher disp; RspList rsp_list; String props=null; public void start() throws Exception { channel=new JChannel(props); //channel.setOpt(Channel.LOCAL, Boolean.FALSE); // disp=new MessageDispatcher(channel, null, null, this); disp=new MessageDispatcher(channel, null, null, this, false, // deadlock detection is disabled true); // concurrent processing is enabled channel.connect("MessageDispatcherTestGroup");// for(int i=0; i < 10; i++) {// //Util.sleep(1000);// System.out.println("Casting message #" +i);// rsp_list=disp.castMessage(null,// new Message(null, null, new String("Number #" +i).getBytes()),// GroupRequest.GET_ALL, 0);// System.out.println("Responses:\n" + rsp_list);// } MyThread t1=new MyThread("one"), t2=new MyThread("two"); t1.start(); t2.start(); t1.join(); t2.join(); System.out.println("** Disconnecting channel"); channel.disconnect(); System.out.println("** Disconnecting channel -- done"); System.out.println("** Closing channel"); channel.close(); System.out.println("** Closing channel -- done"); System.out.println("** disp.stop()"); disp.stop(); System.out.println("** disp.stop() -- done"); //Util.printThreads(); //Util.sleep(2000); //Util.printThreads(); } class MyThread extends Thread { public MyThread(String name) { setName(name); } public void run() { for(int i=0; i < 10; i++) { System.out.println('[' + getName() + "] casting message #" +i); rsp_list=disp.castMessage(null, new Message(null, null, '[' + getName() + "] number #" + i), GroupRequest.GET_ALL, 0); System.out.println('[' + getName() + "] responses:\n" + rsp_list); } } } public Object handle(Message msg) { System.out.println("handle(): " + msg.getObject()); Util.sleepRandom(1000); return "Success !"; } public static void main(String[] args) { try { new MessageDispatcherTest().start(); } catch(Exception e) { System.err.println(e); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -