如何将参数传递给 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 生成的存储过程