WSO2任务在启动时只运行一次



我需要一个任务在wso2启动时只运行一次。我们如何确保这一点。以下内容在计划任务中不起作用

    <trigger once="true"/>

尝试

 <trigger count="1" interval="1"/>

我使用的是ESB 4.8.1。对我来说,这两种配置都很好。以下是我在每种情况下测试的时间表任务示例。

1.配置1-<trigger once="true"/>

<?xml version="1.0" encoding="UTF-8"?>
<task xmlns="http://ws.apache.org/ns/synapse" name="MyTask" class="org.apache.synapse.startup.tasks.MessageInjector" group="synapse.simple.quartz">
<trigger once="true"/>
<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks" name="message">
<name xmlns="">The message will be displayed once</name>
</property>
</task>

2.配置-<trigger count="1" interval="1"/>

<?xml version="1.0" encoding="UTF-8"?>
<task xmlns="http://ws.apache.org/ns/synapse" name="MyTask" class="org.apache.synapse.startup.tasks.MessageInjector" group="synapse.simple.quartz">
<trigger count="1" interval="1"/>
<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks" name="message">
<name xmlns="">The message will be displayed once</name>
</property>
</task>

但是,在ESB文档中,建议在ESB启动后仅使用<trigger once="true"/>执行一次任务。

我也遇到了同样的问题(使用ESB4.9)。在尝试了很多选项后,我发现一个有效的配置是:

<trigger once="true" count="1" interval="1"/>

最新的ESB(Integrator v.6.4.0)中似乎仍然存在一个错误。

在启动和/或部署CAR归档时启动触发器的唯一方法是将间隔设置为高于1000的任何数字。我将它设置为1001,它在部署和重新启动时都会立即运行。下面的配置示例:

<?xml version="1.0" encoding="UTF-8"?>
<task class="org.apache.synapse.startup.tasks.MessageInjector" group="synapse.simple.quartz" name="TSK_Logoff" xmlns="http://ws.apache.org/ns/synapse">
<trigger interval="1001" count="1" />
<property name="sequenceName" value="SEQ_Logoff" xmlns:task="http://www.wso2.org/products/wso2commons/tasks"/>
<property name="injectTo" value="sequence" xmlns:task="http://www.wso2.org/products/wso2commons/tasks"/>
<property name="message" xmlns:task="http://www.wso2.org/products/wso2commons/tasks">
    <logoff/>
</property>

记录一下,我使用的版本是4.8.1。我没有解决这个问题,而是解决了它,并移动了我们必须做的功能。我将其从WSO2初创公司转移到了我们的web层,从而省去了将来与各种WSO2版本升级作斗争的麻烦。

我知道这个问题发生在2016年初,我在2019年3月回答这个问题看起来很奇怪。但这个问题似乎也发生在WSO2的新版本上,即使在2019年1月,其他建筑师也一直在引用/评论这篇文章。因此,我应该评论一下我最后做了什么。

最新更新