2013-04-24 3 views
0

프로젝트에서 나는 빈과 관련된 타이머 목록을 표시하고 이에 대한 정보를 표시해야한다. 필요한 옵션 중 하나는 목록에있는 특정 타이머와 연관된 이벤트를 시작하는 것입니다. 어떤 도움을 주시면 감사하겠습니다.javax.ejb.Timer의 콜백 가져 오기

는 지금 타이머과 같이 주석을 통해 만들어집니다

public ArrayList<SchedulerInfoModel> getTimers() 
{ 
    ArrayList<SchedulerInfoModel> timerInfo = new ArrayList<SchedulerInfoModel>(); 

    Collection<Timer> timers = timerService.getTimers(); 
    for (Iterator<Timer> it = timers.iterator(); it.hasNext();) 
    { 
     Timer timer = it.next(); 
     timerInfo.add(new SchedulerInfoModel(timer.getInfo().toString(), timer.getNextTimeout().toString(), timer.getSchedule().toString())); 
    } 

    return timerInfo; 
} 

SchedulerInfoModel는 간단 여기서

@Schedule(second = "0", minute = "0", hour = "*") 
public void someMethod() 
{ 
    //Some code here 
} 

그리고 타이머에 나에게 모든 정보를 얻는 방법이 같다 POJO :

그렇다면 Timer의 콜백을 얻을 수있는 방법이 있습니까? ? 아니면 가능하지 않은 경우, 타이머가 미래의 타임 아웃에 영향을 미치지 않고 "강제"될 수있는 방법이 있습니까?

답변

0

Timer와 연결된 Method 개체를 가져 오시겠습니까? 아닙니다. 표준 방법이 없습니다. 내 제안은 정보 개체에 일부 정보를 포함하는 것입니다.

타이머를 강제로 실행하는 방법도 없습니다. 가장 가까운 방법은 제한 시간 콜백 메서드를 비즈니스 메서드로 만들고 메서드를 직접 호출하는 것입니다.

+1

답변을 주셔서 감사합니다. 그동안 내가 한 일입니다. 정보의 메소드 이름을 정보에 포함시킨 다음 필요할 때이를 복구하고 메소드를 시작하는 데 리플렉션을 사용했습니다. 이것은 해킹 같은 느낌이지만, 따라서 질문입니다. 어쨌든 고마워! – Zeratul2k

+0

예, 정확히 제가 제안한 것입니다. 다행 했어. –

관련 문제