WSO2 Esb 任务启动和停止事件



我目前正在wso2 esb中实现一个自定义任务,该任务检查服务器上的某些进程,并在进程未启动时启动它们。但是,如果服务器上的 wso2 carbon 实例停止,我还需要停止这些进程。Apache 突触任务接口只有执行方法。apache synapse 或 wso2 carbon 中是否有一个接口,它提供了启动和停止等方法,或者是否可以将突触调度程序任务转换为 osgi 束?

谢谢

已解决

希望这些信息对其他人有用。我的问题"是否可以将突触调度程序任务转换为 osgi 束"的第二部分是真正的问题,答案是肯定的。在 wso2 中,您可以编写自己的捆绑包并将其拖放到 {carbon_server_path}/repository/component/dropins,当服务器启动时,它会安装该捆绑包。所以这里有一些代码片段显示了我的实现:

任务实现

    package com.fga.test.task;
    import org.apache.synapse.task.Task;

    public class ProcessChecker implements Task  {

    @Override
    public void execute() {
          //Check for processes and start them
    }
}

捆绑激活器

    package com.ardic.arcsp.cluster.task;
    import org.osgi.framework.BundleActivator;
    import org.osgi.framework.BundleContext;
    public class Activator implements BundleActivator {

   /**
    * Initializes process list from configuration file
    */
    @Override
    public void start(BundleContext context) throws Exception {
          //Do some initialization

    }
     /**
      * Stops all processes
     */
    @Override
    public void stop(BundleContext context) throws Exception {
           //Get process list from config file and stop them
    }
激活器启动和停止调用

方法将分别在服务器启动和停止事件时调用。

注意:这里 maven 捆绑插件用于创建捆绑包,我的工作环境是 WSO2 esb 版本 4.0.2

最新更新