JIRA 6.3.1实现定时任务总结

SAL开发教程

  https://www.cnblogs.com/l200702031000/p/10060021.html

总结

关于模块配置

JIRA 6.3版本中,建议使用Spring注解的方式,这与教程中的配置文件方式有出入。其中:

  • 模块导入通过注解@ComponentImport完成
  • 公开的模块声明通过@ExportAsService + @Component完成
@Component
@ExportAsService
public class Clone2OsMonitorImpl implements Clone2OsMonitor, LifecycleAware, InitializingBean, DisposableBean {
    static final String KEY = Clone2OsMonitorImpl.class.getName() + ":instance";
    private final String JOB_NAME = Clone2OsMonitorImpl.class.getName() + ":job";
    private final Logger logger = Logger.getLogger(Clone2OsMonitorImpl.class);
    private final PluginScheduler pluginScheduler;  // provided by SAL
    @Inject
    public Clone2OsMonitorImpl(@ComponentImport PluginScheduler pluginScheduler) {
        logger.info("Clone2OsMonitorImpl init.");
        this.pluginScheduler = pluginScheduler;
    }
...................

运行间隔

调试过程中,发现JIRA6.3.1中,定时任务的最小间隔为1min(设置时单位为毫秒)。

若配置间隔时间小于1min,系统会按照1min执行。

注销任务

根据教程,任务的注册是在SAL的LifecycleAware - onStart方法中完成的,但JIRA6.3.1中的LifecycleAware类并没有onStop()方法,导致无法注销定时任务。

导致即使禁用了插件,定时任务仍然会持续运行。

解决方法:实现DisposableBean接口destroy方法,该方法会在插件禁用时被回调,从而实现禁用插件即停止定时任务的目的。

@Component
@ExportAsService
public class Clone2OsMonitorImpl implements Clone2OsMonitor, LifecycleAware, InitializingBean, DisposableBean {
    static final String KEY = Clone2OsMonitorImpl.class.getName() + ":instance";
    private final String JOB_NAME = Clone2OsMonitorImpl.class.getName() + ":job";
    private final Logger logger = Logger.getLogger(Clone2OsMonitorImpl.class);
    private final PluginScheduler pluginScheduler;  // provided by SAL
    @Inject
    public Clone2OsMonitorImpl(@ComponentImport PluginScheduler pluginScheduler) {
        logger.info("Clone2OsMonitorImpl init.");
        this.pluginScheduler = pluginScheduler;
    }
...................
    public void destroy() throws Exception {
        logger.info("Clone2OsMonitorImpl: destroy called.");
        pluginScheduler.unscheduleJob(JOB_NAME);
    }
}

 

posted @ 2018-12-07 12:44  临江仙·2007  阅读(504)  评论(0编辑  收藏  举报