15
回答
java 异步发送短信,异步怎么实现
百度AI开发者大赛带你边学边开发,赢100万奖金,加群:418589053   

java web项目,处理业务的过程中,需要发送短信,并保存短信记录;

发送短信的方法,用的HttpClient,有时发送的比较慢,短信改成异步发送,处理的业务一直往下执行;

这种怎么做?用线程?

<无标签>
举报
田野_7
发帖于2年前 15回/2K+阅
共有15个答案 最后回答: 2年前
其实可以考虑java自带的future模型,和线程差不多,但是能有返回值,告诉你他完成了,实现callable

1,使用spring框架的异步注解 @Async ,底层应该是一个线程。

2,简单粗暴的方式:开一个线程 

 new Thread(new Runnable() {
                public void run() {
                    //发送短信    
                }
            }).start();

当然也可以高级一点,使用线程池。

3,更高端一点:使用消息队列MQ

--- 共有 1 条评论 ---
零二一七补充第2条,建议使用jdk自带的缓存线程池Executors.newCachedThreadPool(),因为发短信是短期任务。 2年前 回复

最简单的就是new一个Thread出来,让它自己跑去,优化一下:加入线程池,防止爆炸

比较好用的办法:业务流程中,发短信只是将短信插入表中,另一个定时任务不停的从表中拉取短信发出去。。。

程序框架,没有用到spring,使用spring框架的异步注解 @Async  ,目前不行;我先试试把数据存库中,开服务多线程发送短信。谢谢各位!!!
顶部