当前位置: 首页 > news >正文

注册网站需要营业执照吗宁波建设检测

注册网站需要营业执照吗,宁波建设检测,vue可以做pc端网站吗,网站备案升级本文大纲#x1f4d6; 1、背景#x1f342;2、SchedulerLock注解3、实现原理 1、背景#x1f342; Spring生态下#xff0c;日常开发定时任务#xff0c;使用Spring Task框架还是很常见的选择#xff0c;但Spring Task并不是为分布式环境设计的#xff0c;分布式环境下… 本文大纲 1、背景2、SchedulerLock注解3、实现原理 1、背景 Spring生态下日常开发定时任务使用Spring Task框架还是很常见的选择但Spring Task并不是为分布式环境设计的分布式环境下服务被部署到多个节点一个节点上运行着一个独立的Jvm各个节点之间并不会协调通讯因此同一个定时任务会在每一个节点上都执行一次导致任务重复执行此时可以考虑使用redis、zookeeper等中间件来实现分布式锁保证一次只有一个节点执行任务当然也可以考虑支持分布式调度等框架如Quartz、xxl-job 2、SchedulerLock注解 在分布式场景下可以使用SchedulerLock注解来弥补Spring Task的缺点注意⚠️这个不是Spring的注解是shedlock库的 package net.javacrumbs.shedlock.spring.annotation;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE}) Retention(RetentionPolicy.RUNTIME) public interface SchedulerLock {String name() default ;String lockAtMostFor() default ;String lockAtLeastFor() default ; }SchedulerLock分布式锁的实现方式很多官方也提供了不同中间件的实现示例https://github.com/lukas-krecan/ShedLock/blob/master/README.md这里演示用mysql实现的过程 引入相关依赖注意依赖版本的兼容性 dependencygroupIdnet.javacrumbs.shedlock/groupIdartifactIdshedlock-spring/artifactIdversion4.42.0/version /dependency dependencygroupIdnet.javacrumbs.shedlock/groupIdartifactIdshedlock-provider-jdbc-template/artifactIdversion4.42.0/version /dependency配置锁提供者这里是mysql import net.javacrumbs.shedlock.core.LockProvider; import net.javacrumbs.shedlock.provider.jdbctemplate.JdbcTemplateLockProvider; import net.javacrumbs.shedlock.spring.annotation.EnableSchedulerLock; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.scheduling.annotation.EnableScheduling;import javax.sql.DataSource;Configuration EnableScheduling //这个是Spring注解开启Spring task功能的 EnableSchedulerLock(defaultLockAtMostFor 30m, defaultLockAtLeastFor 1m) public class LockConfig {Beanpublic LockProvider lockProvider(Qualifier(primaryDataSource) DataSource dataSource) {return new JdbcTemplateLockProvider(JdbcTemplateLockProvider.Configuration.builder()// 使用primaryDataSource这个自定义的数据源和业务接口用一个数据源就行 .withJdbcTemplate(new JdbcTemplate(dataSource)).usingDbTime().build());} }对应的库里建表 CREATE TABLE shedlock(name VARCHAR(64) NOT NULL, lock_until TIMESTAMP(3) NOT NULL,locked_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), locked_by VARCHAR(255) NOT NULL, PRIMARY KEY (name));使用 import net.javacrumbs.shedlock.spring.annotation.SchedulerLock;...Scheduled(cron 0 0 * * * *) SchedulerLock(name your.task.schedule.lockName) //锁名称自定义可以驼峰可以点点点 public void scheduledTask() {// do something }补充下上面配置类里写了默认的锁持有的最长时间和最短时间对于特定任务可以自定义锁持有时间 SchedulerLock(name TaskScheduler_CommonWhiteRisksReport, lockAtMostFor ${task.schedulerLock.lockAtMost}, lockAtLeastFor ${task.schedulerLock.lockAtLeast})task:schedulerLock:lockAtMost: PT8MlockAtLeast: PT8M# Duration的格式是ISO-8601例如 # PT8M 表示8分钟 # PT30S 表示30秒 # PT1H 表示1小时3、实现原理 加EnableSchedulerLock注解后会引入SchedulerLockConfigurationSelector类 SchedulerLockConfigurationSelector类通过实现ImportSelector类导入了两个BeanLockConfigurationExtractorConfiguration 和 MethodProxyLockConfiguration Sting数组里是要注册成Bean的类的全类名这两步就是ImportSelector接口搭配Import注解声明Bean的方式一种使用 再往下LockConfigurationExtractorConfiguration配置类声明了ExtendedLockConfigurationExtractor这个Bean里面包含了锁的一些配置信息如默认最大持有时间这些配置是从注解的属性里拿到的这回配置提取的Bean会带着这些配置信息给下面要提到的另一个Bean使用 另一个配置类MethodProxyLockConfiguration则是声明了MethodProxyScheduledLockAdvisor这个Bean里面通过上面的lockConfigurationExtractor获取锁的一些配置 跟进MethodProxyLockConfiguration类发现其获取了一个切面切面就是包含SchedulerLock注解的方法切面拦截住以后增强的部分是LockingInterceptor对象 而方法增强部分就是根据我们提供的LockProvider来做加锁和释放锁的操作比如mysql向库里写数据Redis的setnx
http://www.w-s-a.com/news/46257/

相关文章:

  • 忻州网站建设培训友情链接交换形式有哪些
  • 佛山做外贸网站渠道外贸常用网站
  • 文章收录网站网站及新媒体建设办法
  • 招聘网站排行榜2021找建网站公司
  • 网站建设制作宝塔面板活动宣传推广的形式有哪些
  • 掉关键词网站敏捷软件开发流程
  • 微信小程序格泰网站建设新闻采编与制作专业简历
  • 电子商城建设网站海伦网站建设
  • 南充能够建设网站的公司有专门做设计的一个网站
  • 免费域名申请个人网站阿里巴巴运营的工作内容
  • 怎么建自己的手机网站保定电子商务网站建设
  • 系部网站建设中期检查表创建网站的公司
  • 西宁网站建设优化重庆企业的网站建设
  • 贝壳企业网站管理系统徽与章网站建设宗旨
  • 郑州网站模板动漫设计与制作设计课程
  • 在线制作网站的工具岳阳网站设计改版
  • 网站建设需要汇报哪些内容前端开发的工作内容
  • 无锡阿凡达网站建设美团app开发公司
  • 个性化企业网站制作公司深圳高端网站定制公
  • 专业深圳网站定制开发企业网站开发 流程
  • 网站建设推广的软文php网站平台
  • 如何做代刷网站长外贸网站个性设计
  • 合同网站开发 设计 后期维护如何搭建海外网络
  • 提供网站建设服务优化大师哪个好
  • 军队营房基础建设网站哦咪咖网站建设
  • fifa17做任务网站app下载免费安装
  • 网站开发用哪些技术seo是什么意思为什么要做seo
  • 网站会动的页面怎么做的与网站建设有关的招标文件
  • 公司网站如何做seowordpress付费资源
  • 福田做商城网站建设哪家公司便宜点WordPress安装子目录