Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package testing;
- import org.jgroups.JChannel;
- import org.jgroups.blocks.RpcDispatcher;
- public class Worker {
- private JChannel controlChannel;
- private RpcDispatcher controlReceiver;
- private boolean shutdown = false;
- public Worker() {
- }
- protected void joinControl(String nodeName) throws Exception {
- controlChannel = new JChannel();
- controlReceiver = new RpcDispatcher(controlChannel, this);
- controlChannel.setDiscardOwnMessages(true);
- controlChannel.setName(nodeName);
- controlChannel.connect("ControlCluster");
- }
- /**
- * Close the channels.
- */
- protected void close() {
- controlChannel.close();
- controlReceiver.stop();
- }
- public void stop() {
- System.out.println("Stop called on " + controlChannel.getName());
- shutdown = true;
- }
- /**
- * Connect to Control channel and wait for stop command.
- *
- * @param args Node name as first parameter
- * @throws Exception
- */
- public static void main(String[] args) throws Exception {
- Worker worker = new Worker();
- try {
- worker.joinControl(args[0]);
- // Active polling just for testing, use a Semaphore for real work!
- while (!worker.shutdown) {
- Thread.sleep(100);
- }
- } finally {
- worker.close();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement