java线程池场景使用

当服务器接口之间通讯中,如果A服务器请求B服务器,只返回请求通讯成功且不需要实时返回业务成功或失败时,处理成功或者失败用异步通知方式,那么可以采用线程池或者消息队列
业务场景:金融业务中的强风控,还款等等
重点:如果需要同步通知业务成功或失败,让A服务器提供通知接口,在服务器B线程中可以同步通知服务器A中的接口   累计金融业务弱风控 

代码如下:

/**
 * @author stone
 * @date 2019-03-21 16:20:21
 */
@Service
public class ExceutorTestServiceImpl implements ExceutorTestService{

    @Resource
    SlUserMapper slUserMapper;

    private ExecutorService executorService = Executors.newFixedThreadPool(5);

    Logger logger = LoggerFactory.getLogger(ExceutorTestServiceImpl.class);

    @Override
    public void exceutorTest() {
        logger.info("部分业务有线程来处理,无需返回结果,可以拋出异常全局捕获即可");
        SubmitStrongRiskTask task = new SubmitStrongRiskTask(1l, BigDecimal.valueOf(10l));
        executorService.execute(task);
        logger.info("继续做其他业务");
    }

    class SubmitStrongRiskTask implements Runnable {
        private Long userId;
        private BigDecimal amount;

        SubmitStrongRiskTask(Long userId, BigDecimal amount) {
            this.userId = userId;
            this.amount = amount;
        }

        @Override
        public void run() {
            SlUser slUser = slUserMapper.getUserById(16l);
            logger.info("用户手机号码是:"+ slUser.getMobile());
        }
    }

}

打印日志如下:
192.168.3.78 部分业务有线程来处理,无需返回结果,可以拋出异常全局捕获即可
192.168.3.78 继续做其他业务
192.168.3.78 用户手机号码是:15576602451

你可能感兴趣的:(java)