JPPF笔记

1. 参数传递:Job.setDataProvider 传递给Task 

 

2. 初始化例子

 

 

public void run() {

ApplicationContext ctx = (ApplicationContext) NodeRunner.getPersistentData("spring-context");

if (ctx == null) {

ctx =  new MyContext("classpath:applicationContext.xml");

System.out.println("get context");

NodeRunner.setPersistentData("spring-context", ctx);

}

JdbcTemplate jdbc = (JdbcTemplate) ctx.getBean("jdbcTemplate");

List list = jdbc.queryForList("select * from um_usr");

System.out.println(list.size());

super.setResult(1000L);

}

 

3. Concurrent 包

JPPF实现了Java5 Concurrent包

但是因为JPPF采用远程传输方式,所以任务类必须实现Serializable 接口,否则收不到计算结果。

 

测试Main:

public static void main(String[] args) throws InterruptedException, ExecutionException {

JPPFClient client = new JPPFClient();

JPPFExecutorService exec = new JPPFExecutorService(client);

Future<Long> future = exec.submit(new MyTask());

System.out.println("future get:" + future.get());

exec.shutdown();

}

 

public class MyTask implements Callable<Long>, Serializable {

 

private static final long serialVersionUID = -4442750246804487036L;

 

@Override

public Long call() throws Exception {

System.out.println("running me ..");

return 100L;

}

 

}

你可能感兴趣的:(笔记)