2015-09-03 77 views
0

我有一個工作流,它是由spring在「workflow」範圍內設置的。下面的代碼會馬上顯示消息,而不是等待60秒。我認爲這是因爲我構建Helper類的方式......我如何修復異步方法以在另一個類中工作?@助手類中的異步? [SWF]

public class MyWorkflowImpl implements MyWorkflowImpl { 
    private Helper helper = new Helper(); 
    @Override 
    public do() { 
     Promise<Void> timer = getTimer(60); //seconds 
     helper.showMessage(timer); 
    } 
} 

public class Helper { 
    @Asynchronous 
    public showMessage(Promise<Void> timer) { 
     // show random message 
    } 
} 

回答

0

該代碼是正確的。 @Asynchronous應該適用於任何類的任何方法,並且將AspectJ預處理器應用於所有使用它的類。

+0

我明白你說的是由某個方面處理,但由於某種原因,它只是不推遲執行。任何想法排除故障? – Chaos

+0

確保AspectJ配置爲處理助手類包。檢查AspectJ預處理器日誌以獲取檢測類的列表。 –

+0

我設置了一個調試器,並看到AsynchronousAspect匹配助手類中的4個方法中的2個。簽名看起來類似..試圖找出爲什麼其他兩個不具約束力。 – Chaos