首页 雷火电竞正文

浮世绘,重写Spring Boot守时使命,支撑可动态调整执行时间-雷火电竞安卓app

admin 雷火电竞 2019-12-12 342 0

Spring Boot应该是现在最火的java开源框架了,它简化了咱们创立一个web服务的进程,让咱们能够在很短时刻、根本零装备就能够发动一个web服务。

守时使命在咱们往常的事务开发用的十分多,Spring Boot创立一个守时使命很简单,只需求用@Scheduled注解办法,就能够让办法依照界说的时刻进行运转。可是,Spring Boot的@Scheduled默许是单线程的,也便是假如有两个守时使命,那第二个守时必须在第一个守时使命履行完结之后才干开端履行。当然咱们能够运用@Async让办法异步,来到达多线程的意图。可是,今日我要讲的是怎样重写Spring Boot守时使命,并可支撑动态调整履行时刻。

1、界说咱们需求守时触发的使命办法

实例代码中咱们界说了两个需求进行守时触发的使命。而且自界说注解@CronScheduled

2、自界说注解@CronScheduled

自界说注解的效果首要在于后续的逻辑能够获取到该办法的履行周期。一起也能够界说其它的特点,用于后续的事务逻辑处理

3、注册守时使命

标题咱们提出了支撑可动态调整履行时刻。往常的守时使命中咱们无法动态调整履行时刻,除非重启使用。那咱们咋这儿怎样动态调整时刻呢?思路是:从头注册使命。当咱们检测到守时使命的履行时刻发生变化,咱们就从头注册使命。假如咱们的守时使命表达式是装备在数据库,那咱们能够守时轮训数据库获取,检测到变化了就从头注册。假如是装备在配种中心,装备中心一般会有触发器trigger。当咱们承受装备中心数据发生变化的告诉今后,咱们从头注册守时使命。

从头注册使命的办法

reReqiester办法能够露出出去被其它类调用。当外部逻辑检测到守时使命的履行时刻发生变化,调用此办法从头注册守时使命

ScheduledTaskRegistrar是Task的一个容器, 内部保护了这些Task List和executor的引证, 并担任将Task置入executor中履行。ScheduledTaskRegistrar的完成原理咱们自行研讨。这儿就不进行具体解说。

完成BeanPostProcessor能够在ScheduleTask目标实例化今后,咱们调用自己的逻辑办法。在这儿咱们用来触发configureTasks办法。

至此,咱们就自己完成了守时使命的调度,在调度的进程中,咱们也能够参加自己逻辑处理事务。

雷火电竞版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

最近发表

    雷火电竞安卓app_雷火电竞app下载_雷火app

    http://www.beypazarliyiz.com/

    |

    Powered By

    使用手机软件扫描微信二维码

    关注我们可获取更多热点资讯

    雷火电竞出品