我有一部Play! (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()方法调用时,它不会触发.
关于如何传递实际异步执行工作所需的数据的任何建议?
解决方法:
你应该:
>在ImportCSV类中创建私有字段,以保存作业所需的参数
>在Job类构造函数中初始化这些变量(this.param1 = param1)
>调用新的ImportCSV(param1,param2)初始化您的对象
>使用this.param1访问doJobWithResult()方法中的私有字段
Promise的创建很好,您将以:
Promise<String> recordcount = new ImportCSV(param1, param2).Now();
String records = await(recordcount);
如果您在Job类的构造函数中遇到问题,请更新您的问题并添加一些代码.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。