> 文章列表 > consistency-starter

consistency-starter

consistency-starter

使用说明
建议在B端使用,不推荐C端使用
功能

  1. 事务提交之后推送MQ
    a. 当一个程序中有多个MQ需要推送时,可以在事务内任意位置调用发送MQ方法,而不会因为程序报错而导致数据不一致问题.
  2. 事务提交之后发起子线程执行异步任务
  3. 程序中灵活指定时间执行子任务
    a. 例如:业务要求执行A业务逻辑过后5min执行B业务逻辑
  4. 失败任务可自动重试,失败次数达到一定次数后可人工手动重试
  5. 失败任务支持批量重置状态
  6. 可配置任务优先级,优先级高的优先执行
    自动重试/定时执行原理:
    将任务参数数据持久化:
    a. 执行任务的参数
    b. 执行任务时现Handler的beanName
    c. 指定执行时间
    通过在后台启用一个ScheduledThreadPool线程池,定时执行扫描未完成的任务,失败状态的任务不扫描

如何引入

com.hete.support
xx-consistency-starter

如果需要通过一致性框架发送mq,需要引入xx-rocketmq-starter

com.hete.support
xx-rocketmq-starter

如何配置

hete:
consistency:
background-polling: true
db-clear-job-start-hour: 18
handler-pool-config:
testDemo:
core-pool-size: 4
keep-alive-seconds: 5
max-pool-size: 5
queue-capacity: 10
handler-info-map:
testDemo:
priority: 50
future-timeout: 2
mq-info:
goodsCreateHandler:
topic: topic_plm
tag: tag_create_goods
goodsDetailHandler:
topic: topic_plm
tag: tag_goods_detail

// 其他配置: redis配置,mysql配置,mq配置
配置说明:
配置项 说明 默认值
retention-hour 历史数据的保留时间(从创建开始计算的时间) 24
retention-hour-for-fail-msg 失败的历史数据的保留时间(从创建开始计算的时间) 72
default-interval-minutes 任务执行失败后,默认的间隔时间 1
db-clear-job-start-hour DB清理任务,开始时间(小时) UTC 时间 例如,北京时间凌晨2点 = UTC时间 18点, 这里就要输入18 0
pool-config 线程池配置
handler-pool-config 处理器的线程池配置
default-max-exec-count 任务最大可自动重试次数 3
background-polling 后台执行开关 true
db-clear-job-start-hour 后台清楚过期任务时间 0
handler-pool-config 线程池配置
priority 优先级,值越小优先级越高,最高为0 50
future-timeout 后台任务线程future.get(long timeout)的超时时间,单位秒 2
mq-info mq配置
topic RocketMQ的topic
tag RocketMQ的tag
版本更新
1.0.0
1.