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

Posted

技术标签:

【中文标题】如何将参数传递给 Play 中的 Jobs!框架 1.2.x?【英文标题】:How do I pass parameters to Jobs in Play! Framework 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() 方法调用时它不会触发。

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

【问题讨论】:

【参考方案1】:

你应该:

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

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

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

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

【讨论】:

我必须将传递给构造函数的参数复制到私有字段(csvfile = csvfile2,filetype = filetype2),但除此之外,还可以享受。谢谢!

以上是关于如何将参数传递给 Play 中的 Jobs!框架 1.2.x?的主要内容,如果未能解决你的问题,请参考以下文章

通过pydatalab将任何选项/参数传递给BigQuery

如何将参数传递给 Microsoft Sync 2.1 生成的存储过程

如何将参数传递给控制器 构造函数?这是正确的做法吗?

如何将参数传递给scala中的方法

如何将参数传递给 CloudFormation YAML 中的 Glue 作业?

如何将参数传递给SQL(Excel)中的查询