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;
}
}