2012-07-25 3 views
3

내 플레이가 있습니다! CSV 파일에서 데이터를로드하는 애플리케이션 (1.2.4)이 정상적으로 작동하지만 잠시 시간이 걸립니다. 약속 시간 메커니즘을 통해 작업에 배치하려고했습니다. 문제는 doJobWithResult가 매개 변수없는 메서드를 재정의하므로 입력 매개 변수 (CSV 파일과 파일 형식의 문자열)를 전달하는 방법이없는 것 같습니다. 나는 그 매개 변수를 작업 클래스의 생성자를 만들려고Play의 작업에 매개 변수를 전달하려면 어떻게해야합니까? 프레임 워크 1.2.x?

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

하지만, - :

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

}

과 같이이라고합니다 -이 :

욥처럼 보인다 now() 메서드를 통해 호출 될 때 트리거되지 않습니다.

작업을 비동기 적으로 수행하는 데 필요한 데이터를 전달하는 방법에 대한 제안 사항은 무엇입니까?

답변

4

을 수행해야합니다

  1. 이 개체를 초기화하는 작업 클래스 생성자 (this.param1 = param1)
  2. 전화 new ImportCSV(param1, param2) 이러한 fieds를 초기화 작업
  3. 에 필요한 PARAMS를 개최하여 ImportCSV 클래스에 private fields 만들기
  4. this.param1
을 사용하여 doJobWithResult() 메소드의 비공개 필드에 액세스하십시오. 당신이 당신의 질문을 업데이트하고 몇 가지 코드를 추가하십시오 당신의 작업 클래스의 생성자에 문제가있는 경우

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

: 약속의

창조가 좋은, 당신은로 끝납니다.

+0

생성자에 전달 된 params를 개인 필드 (csvfile = csvfile2, filetype = filetype2)에 복사해야했지만 그 외에는 치료가 필요했습니다. 감사! –