能否在deployment.toml中设置任务触发器可用变量以替代环境变量?
在WSO2 Micro Integrator中通过deployment.toml配置任务触发间隔变量
不用再在服务器上跑额外脚本配置环境变量了,直接在MI的deployment.toml里搞定任务触发间隔的配置,步骤如下:
1. 在deployment.toml里定义间隔变量
打开MI的deployment.toml配置文件,添加自定义的任务配置项,比如:
[task_config] trigger_interval = "30000" # 这里设的是30秒,单位是毫秒
2. 在任务配置里引用这个变量
不管你是用WSO2 Integration Studio设计任务,还是直接修改MI的任务XML文件,都能用${sys:task_config.trigger_interval}来调用刚才定义的变量。
举个任务XML的示例:
<task class="org.wso2.carbon.mediation.ntask.NTask" group="scheduledTasks" name="SampleScheduledTask"> <trigger interval="${sys:task_config.trigger_interval}"/> <property name="messageType" value="text/xml"/> <property name="sequential" value="true"/> <target> <sequence key="SampleTaskSequence"/> </target> </task>
3. 验证配置
重启MI之后,它会自动加载deployment.toml里的变量,任务就会按你设置的间隔触发。之后要改间隔的话,直接改deployment.toml里的数值,重启MI就行,不用碰系统环境变量。
额外提示
- 如果要分环境(开发/测试/生产)用不同间隔,可以在启动MI的时候用命令行参数覆盖配置,比如:
-Dtask_config.trigger_interval=60000,命令行传的变量会优先生效 - 注意:WSO2 MI 4.0.0及以上版本才支持从
deployment.toml读取自定义系统变量,老版本可能不兼容
内容的提问来源于stack exchange,提问作者Gandalf CZ3
相关产品推荐
相关产品推荐

