Spring Quartz持久化的一些问题

Spring Quartz持久化的一些问题

         之前在项目中使用过Spring继承quart来实现定时任务,当时是第一次使用,通过内存的方式来配置quartz,简单快捷,只是配置信息都在配置文件中,修改和扩展以及贴合自身应用都不太方便。

       Quartz也可以通过数据库的方式来持久化任务信息,更加的具有扩展性,应用也更加的广泛,只是配置起来会稍微复杂一下,比如数据库、以及实现quartz的一些类来达到灵活控制业务的目的。

       在配置好能持久化的Quartz后,很多的业务方法会和数据库打交道,这个会有一个问题就是序列化,quartz有一调度类实现了序列化,通过spring注入一些没有序列化的对象就会报错,在应用中访问数据库很多地方时hibernate,如果dao没有实现序列化,那么项目是跑不起来的。

       对于遇到的一些问题,有的时候只有通过一些变通的方法来解决,比如sessionfactory是实现了序列化接口的,我们可以通过spring来对dao注入sessionfactory来对持久层进行操作。除此之外,通过配置,也可以从quartz的调度器中取得spring的上下文,得到上下文,就可以通过getbean(“xxx”)来取得配置的bean或者是services。在quartz中需要访问数据库还可以直接通过JDBC来实现,spring的jdbctemplate在这里也是不支持的,应为没有实现序列化,可以通过上下文加载然后通过参数传递到业务方法中去执行操作。

        这些都觉得之后,quartz还可以通过[监][听][器]以及插件来实现任务的管理、监控,比如任务调度前、执行时、执行后系统需要采取的操作等等。

         之前找到个旧版本的中文文档,提到了使用quartz来实现简便的工作流以及远程调用和集群,可见这个东西还是可以深入下去应用到很多地方的。

皮埃斯:这河蟹的网络折腾死人。

留下回复