001 package com.basilv.examples.rmi;
002
003
004 import java.rmi.Naming;
005
006 public class TaskExecutorClient {
007
008 public static void main(String[] args) throws Exception {
009
010 String host = "localhost";
011 int portNumber = 1099;
012 String lookupName = "//" + host + ":" + portNumber + "/" + TaskExecutorServer.REGISTRY_NAME;
013 RemoteTaskExecutor executor = (RemoteTaskExecutor) Naming.lookup(lookupName);
014
015 long currentTimeMillis = System.currentTimeMillis();
016 System.out.println("Requesting task execution for " + currentTimeMillis);
017 Object result = executor.executeTask(new TestTask(), currentTimeMillis);
018 System.out.println("Task executed for " + result);
019
020 }
021
022 public static class TestTask implements Task {
023
024 public Object execute(Object argument) {
025 System.out.println("Executing task for " + argument +
026 " thread id = " + Thread.currentThread().getId());
027 try {
028 Thread.sleep(10000);
029 } catch (InterruptedException e) {
030 // Do nothing.
031 }
032 System.out.println("Executed task for " + argument);
033 return argument;
034 }
035
036 }
037 }