You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

定时任务引用Sequence Template报错,寻求解决方案

问题:定时任务引用Sequence Template报错,直接引用Sequence正常

测试定时任务时,直接引用Sequence可正常运行,但引用Sequence Template时出现报错,需求是通过定时任务调用模板中的Sequence。

现有代码

定时任务配置

<task class="org.apache.synapse.startup.tasks.MessageInjector" group="synapse.simple.quartz" name="CheckGrandOak" xmlns="http://ws.apache.org/ns/synapse">
    <trigger interval="5"/>
    <property name="sequenceName" value="ScheduledTask" xmlns:task="http://www.wso2.org/products/wso2commons/tasks"/>
    <property name="format" value="text/xml" xmlns:task="http://www.wso2.org/products/wso2commons/tasks"/>
    <property name="message" xmlns:task="http://www.wso2.org/products/wso2commons/tasks">
        <message xmlns="">Welcome to the new world</message>
    </property>
    <property name="injectTo" value="template" xmlns:task="http://www.wso2.org/products/wso2commons/tasks"/>
</task>

API配置

<api context="/tasks" name="ScheduledTasks" xmlns="http://ws.apache.org/ns/synapse">
    <resource methods="GET">
        <inSequence>
            <log>
                <property name="message" value="This is the API"/>
            </log>
            <call-template target="ScheduledTask"/>
            <respond/>
        </inSequence>
        <outSequence/>
        <faultSequence/>
    </resource>
</api>

Sequence Template文件名为ScheduledTask.xml。

解决方案

MessageInjector定时任务并不直接支持injectTo="template"的配置,需要通过中转Sequence来调用目标模板,步骤如下:

  1. 创建中转Sequence
    在序列目录下创建一个普通Sequence(示例命名为InvokeTemplateSequence),内部通过<call-template>调用你的目标Sequence Template:
<sequence name="InvokeTemplateSequence" xmlns="http://ws.apache.org/ns/synapse">
    <call-template target="ScheduledTask"/>
</sequence>
  1. 修改定时任务配置
    将定时任务的sequenceName改为中转Sequence的名称,同时把injectTo值改为sequence:
<task class="org.apache.synapse.startup.tasks.MessageInjector" group="synapse.simple.quartz" name="CheckGrandOak" xmlns="http://ws.apache.org/ns/synapse">
    <trigger interval="5"/>
    <property name="sequenceName" value="InvokeTemplateSequence" xmlns:task="http://www.wso2.org/products/wso2commons/tasks"/>
    <property name="format" value="text/xml" xmlns:task="http://www.wso2.org/products/wso2commons/tasks"/>
    <property name="message" xmlns:task="http://www.wso2.org/products/wso2commons/tasks">
        <message xmlns="">Welcome to the new world</message>
    </property>
    <property name="injectTo" value="sequence" xmlns:task="http://www.wso2.org/products/wso2commons/tasks"/>
</task>
  1. 确认模板部署
    确保ScheduledTask.xml已正确放置在WSO2 EI的模板目录(通常为repository/deployment/server/synapse-configs/default/templates/),并已加载生效。

内容的提问来源于stack exchange,提问作者Mugisha Solomon Bekunda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 15:09:54