【问题标题】:How do I pass parameters to Jobs in Play! Framework 1.2.x?如何将参数传递给 Play 中的 Jobs!框架 1.2.x?
【发布时间】:2012-07-25 09:58:45
【问题描述】:

我有一段我的剧本! (1.2.4) 应用程序从 CSV 文件加载数据,这工作正常,但需要一段时间,我一直在尝试通过 Promise 机制将其移植到作业。问题是,似乎没有办法传递输入参数(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() 方法调用时它不会触发。

关于如何传递实际异步执行作业所需的数据有什么建议吗?

【问题讨论】:

    标签: java playframework playframework-1.x promise


    【解决方案1】:

    你应该:

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

    Promise 的创建是好的,你会以:

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

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

    【讨论】:

    • 我必须将传递给构造函数的参数复制到私有字段(csvfile = csvfile2,filetype = filetype2),但除此之外,还可以享受。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    相关资源
    最近更新 更多