读书人

JPPF札记

发布时间: 2012-08-14 10:39:58 作者: rapoo

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;

}

?

}

读书人网 >软件架构设计

热点推荐