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

时间:2016-01-06 14:01:03

标签: wso2 wso2esb wso2carbon

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

    <trigger once="true"/>

5 个答案:

答案 0 :(得分:1)

尝试

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

答案 1 :(得分:1)

我正在使用ESB 4.8.1。对我来说,两种配置都很好。以下是我在每种情况下测试的样本计划任务。

1.Configuration 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.Configuration - <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"/>执行一次任务。

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

最新的ESB(集成商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 :(得分:0)

仅作记录,我使用的版本是4.8.1。我没有解决此问题,而是解决了该问题,并移走了我们只需要执行一次的功能。我将其从WSO2初创公司移至我们的Web层,从而避免了以后需要进行各种WSO2版本升级的麻烦。

我知道这个问题发生在2016年初,让我在2019年3月回答这个问题看起来很奇怪。但是这个问题似乎也在更新版本的WSO2中发生,并且同行的架构师一直在对此进行评论。即使在2019年1月也发布了帖子。因此,对我最终做的事情发表评论是合适的。