2012-07-25 59 views
3

我有一块我的戏! (1.2.4)从CSV文件加载数据的应用程序,这工作正常,但它需要一段时间,我一直试图通过承诺机制将它传递给作业。问题是,似乎没有办法传递输入参数(CSV文件和文件类型的字符串),因为doJobWithResult是无参数方法的覆盖。如何在Play中将参数传递给作业!框架1.2.x?

工作的样子: -

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

}

,被称为像: -

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

我试图创建的工作类,它的参数的构造函数,但随后它在通过now()方法调用时不会触发。

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

回答

4

您应该:

  1. 在ImportCSV类来保存作业
  2. 所需的PARAMS在招聘类的构造函数(this.param1 = param1
  3. 呼叫new ImportCSV(param1, param2)来初始化对象初始化这些fieds创建private fields
  4. 访问您的doJobWithResult()方法中的私有字段使用this.param1

无极的创作是好的,你会结束:

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

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

+0

我不得不复制传递给构造函数的参数到私有字段(csvfile = csvfile2,filetype = filetype2),但除此之外,作品可以作为一种享受。谢谢! – 2012-07-25 10:25:05

相关问题