對於我當前的AEM 6.0項目,我需要創建自定義工作流程來創建演繹。正在與其他AEM項目共享平臺。這就是我們爲什麼不允許修改原始DAMUpdateAsset工作流程(其中呈現AEM特定呈現,縮略圖等)的原因。AEM CQ等待工作流程完成
我的自定義呈現工作流呈現不同的呈現。問題是,當我的工作流程與DAMUpdateAsset工作流程並行運行時,有時我會收回像IllegalOakState這樣的異常。
我需要的是一個解決方案,等待我的工作流程,直到DAMUpdateAsset工作流程完成。
目前,我試圖讓與橡樹查詢
public static final String QUERY_STRING = "SELECT * FROM [nt:base] AS s WHERE ISDESCENDANTNODE([/etc/workflow/instances]) and CONTAINS('status', 'COMPLETED') and contains('modelId', '/etc/workflow/models/dam/update_asset/jcr:content/model') and [data/payload/path]='%s' and endTime > CAST('%s' AS DATE)";
private void waitForDamUpdateImage(Session session, String path) throws WorkflowException, InterruptedException
{
final DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX", Locale.GERMAN);
final Date now = new Date();
final Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date(now.getTime() - 2 * 60 * 1000));
String queryString = String.format(QUERY_STRING, path, formatter.format(calendar.getTime()));
Iterator iterator;
do
{
//wait(100); this wait will produce IllegalMonitor... Exception
iterator = QueryUtils.query(session, queryString);
}
while (!iterator.hasNext());
}
我不認爲這是一個最佳的解決方案做了,我想會有解決這個問題更簡單的方法。
希望你瞭解我的問題是什麼,也許可以幫助我解決這個問題。
謝謝你的好意;)