【问题标题】:AEM CQ wait for workflow to finishAEM CQ 等待工作流完成
【发布时间】:2016-03-09 09:03:53
【问题描述】:

对于我当前的 AEM 6.0 项目,我需要创建一个自定义工作流来创建演绎版。正在与其他 AEM 项目在共享平台上工作。这就是我们不允许调整原始 DAMUpdateAsset 工作流程(呈现 AEM 特定的再现、缩略图等)的原因。

我的自定义再现工作流程呈现不同的再现。问题是,当我的工作流与 DAMUpdateAsset 工作流并行运行时,有时我会收到 IllegalOakState 之类的异常。

我需要一个解决方案,等待我的工作流程完成 DAMUpdateAsset 工作流程。

目前我正在尝试使用 Oak 查询来完成此操作

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());
}

我不认为这是一个最佳解决方案,我认为会有一个更简单的方法来解决这个问题。

希望您对我的问题有所了解,或许可以帮助我解决这个问题。

还是谢谢你;)

【问题讨论】:

    标签: java workflow aem wait


    【解决方案1】:

    您可以创建一个工作流启动器,它会在节点类型 cq:workflow 和路径 /etc/workflow/instances(/.*) 的节点修改事件上自动调用您的工作流。 并且条件是 status=COMPLETED modeleid=/etc/workflow/models/dam/update_asset/jcr:content/model,您可能需要试验哪种条件具有最佳性能。

    由于启动器中只允许一个条件,您需要在流程实现中检查其中一个条件并继续或中止。

    【讨论】:

      【解决方案2】:

      我们意识到解决此问题的最佳方法是要求平台管理员在包含自定义工作流程的 DamUpdateAsset 工作流程末尾添加一个容器步骤。在自定义工作流程中,我们检查有效负载以仅在其内容正确时执行我们的步骤。现在所有其他解决方案都将出现多线程问题

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-22
        • 1970-01-01
        • 1970-01-01
        • 2019-12-18
        • 2023-04-07
        相关资源
        最近更新 更多