⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rpcdispatchersimpletest.java

📁 JGRoups源码
💻 JAVA
字号:
package org.jgroups.tests;import org.jgroups.Channel;import org.jgroups.JChannel;import org.jgroups.blocks.GroupRequest;import org.jgroups.blocks.RpcDispatcher;import org.jgroups.util.RspList;import org.jgroups.util.Util;/** * Example for RpcDispatcher (see also MessageDispatcher). A remote method (print()) is group-invoked * periodically. The method is defined in each instance and is invoked whenever a remote method call * is received. The callee (although in this example, each callee is also a caller (peer principle)) * has to define the public methods, and the caller uses one of the callRemoteMethods() methods to * invoke a remote method. CallRemoteMethods uses the core reflection API to lookup and dispatch * methods. * * @author Bela Ban * @version $Id: RpcDispatcherSimpleTest.java,v 1.1 2006/08/28 05:54:33 belaban Exp $ */public class RpcDispatcherSimpleTest {    Channel channel;    RpcDispatcher disp;    RspList rsp_list;    String props=null;    public int print(int number) throws Exception {        System.out.println("print(" + number + ')');        return number * 2;    }    public void start(int num, long interval) throws Exception {        channel=new JChannel(props);        channel.setOpt(Channel.AUTO_RECONNECT, Boolean.TRUE);        disp=new RpcDispatcher(channel, null, null, this);        channel.connect("RpcDispatcherTestGroup");        for(int i=0; i < num; i++) {            Util.sleep(interval);            rsp_list=disp.callRemoteMethods(null, "print", new Object[]{new Integer(i)},                    new Class[]{int.class}, GroupRequest.GET_ALL, 0);            System.out.println("Responses: " + rsp_list);        }        System.out.println("Closing channel");        channel.close();        System.out.println("Closing channel: -- done");        System.out.println("Stopping dispatcher");        disp.stop();        System.out.println("Stopping dispatcher: -- done");    }    public static void main(String[] args) {        int num=10;        long interval=1000;        for(int i=0; i < args.length; i++) {            if(args[i].equals("-num")) {                num=Integer.parseInt(args[++i]);                continue;            }            if(args[i].equals("-interval")) {                interval=Long.parseLong(args[++i]);                continue;            }            help();            return;        }        try {            new RpcDispatcherSimpleTest().start(num, interval);        }        catch(Exception e) {            System.err.println(e);        }    }    private static void help() {        System.out.println("RpcDispatcherTest [-help] [-num <number of msgs>] [-interval <sleep in ms between calls>]");    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -