ThreadPoolExecutor 线程池和redisson加上手动事务踩的坑


提示:线程池异步出现的问题
例如:要求搞个拼团,同时开启多个活动,每个活动最高50人参与(服务器原因,不能再多了)


一、具体活动

示例:加入线程池,开个定时器,每分钟扫描一次,拼团时间小时为单位,会自动添加机器人,
具体填充机器人时间点 是当前时间加上,活动区间/人数, 后面到活动结束了还没添加足够机器人,活动结束前最后一分钟,批量添加,
活动人满,开奖,自动续期,

0.线程池

代码如下(示例):

 public static ThreadPoolExecutor activity = new ThreadPoolExecutor(30,
            100, 10L, TimeUnit.SECONDS, new ArrayBlockingQueue<>(65536));

1.redisson锁 依赖

代码如下(示例):

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2.redisson锁 config文件

/**
 * redis配置
 *
 */
@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {
   
    @Bean
    @SuppressWarnings(value = {
   "unchecked", "rawtypes"})
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
   
        RedisTemplate<Object, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(connectionFactory);

        FastJson2JsonRedisSerializer serializer = new FastJson2JsonRedisSerializer(Object.class);

        ObjectMapper mapper = new ObjectMapper();
        mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        serializer.setObjectMapper(mapper);

        templat
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值