如何将参数传递给Play中的Jobs!框架1.2.x?

时间:2012-07-25 09:58:46

标签: java playframework playframework-1.x promise

我有一块我的游戏! (1.2.4)从CSV文件加载数据的应用程序,这工作正常,但需要一段时间,我一直试图通过Promise机制将其移植到Job。麻烦的是,似乎没有办法传递输入参数(CSV文件和文件类型的字符串),因为doJobWithResult是无参数方法的覆盖。

工作看起来像: -

public class ImportCSV extends Job<string> {
public String doJobWithResult()
{
    do stuff...
    return my_string;

}

并且被称为: -

Promise<String> recordcount = new ImportCSV().now();
String records = await(recordcount);

我尝试在Job类中创建一个带有这些参数的构造函数,但是当通过now()方法调用时它不会触发。

关于如何以异步方式传递实际执行作业所需数据的任何建议?

1 个答案:

答案 0 :(得分:4)

你应该:

  1. 在ImportCSV类中创建private fields以保存作业所需的参数
  2. 在Job类构造函数(this.param1 = param1
  3. 中初始化这些fied
  4. 致电new ImportCSV(param1, param2)初始化您的对象
  5. 使用this.param1
  6. 访问doJobWithResult()方法中的私有字段

    承诺的创造是好的,你将以:

    结束
    Promise<String> recordcount = new ImportCSV(param1, param2).now();
    String records = await(recordcount);
    

    如果您的Job类的构造函数有问题,请更新您的问题并添加一些代码。