题主应该想问的是在spring框架下如何开发一个“优雅的、异步的”的去执行一个功能吧?至于这个功能是发送一条MQ消息啊还是发送一份邮件、一条短信都可以,重要的是想异步且优雅的执行这些功能。

从上面对题目的分析来看的话,题主可以参考一下我的解决办法和思路:

  1. 异步代表着你需要开启一个单独的线程去做这个事情,这个事情做完了,这个线程需要及时的释放,避免占用系统资源。

  2. 既然在Spring框架下开发,那就定义一个bean交给Spring容器去管理这个bean,保持单例的同时还可以复用这个bean,可以在想发MQ消息的时候去用这个bean,发邮件、发短信的时候也可以用,注入一下就可以了。

  3. 当这个发送通知的动作频繁且量大的时候,就需要用到线程池了,池化技术可以免去了线程临时创建、销毁的开销,还可以保持线程的复用,提升系统的性能。

下面提供在Spring框架下定义一个线程池的bean的步骤:

自己定义一个线程池类继承ThreadPoolTaskExecutor

为什么要自己定义一个呢?因为可以做一些定制的工作,比如打印线程池的一些信息啊,打印一些基础日志啊,甚至基于线程池里队列的阻塞情况做进一步的监控、报警动作也是可以的。代码如下:

定义一个线程池的bean,其他地方可以直接注入使用

实际使用过程中我们就可以直接:

Spring如何优雅地发送异步发送通知?相关推荐

  1. (转)RabbitMQ学习之spring整合发送异步消息(注解实现)

    http://blog.csdn.net/zhu_tianwei/article/details/40919249 实现使用Exchange类型为DirectExchange. routingkey的 ...

  2. (转) RabbitMQ学习之spring整合发送异步消息

    http://blog.csdn.net/zhu_tianwei/article/details/40919031 实现使用Exchange类型为DirectExchange. routingkey的 ...

  3. 使用 Hangouts Chat 以异步消息形式发送提醒和通知…

    文 / G Suite 开发技术推广工程师 Wesley Chun (@wescpy) 大多数聊天机器人都以同步方式响应用户请求,但在某些情况下,聊天机器人不基于显式用户请求执行操作,例如提醒或通知. ...

  4. kafka异步发送数据_在Kafka上异步发送数据

    kafka异步发送数据 对于一个项目,我试图记录用户的基本交易,例如添加和删除一个项目以及多种类型的项目,并为每笔交易向kafka发送一条消息. 日志机制的准确性不是至关重要的,在kafka服务器停机 ...

  5. log4j2异步发送error日志邮件配置

    从高可用性方面考虑,大的平台通常都会配置错误日志发送邮件的功能,由于发送邮件比较慢,同步发邮件会影响用户体验,通常会配置成异步发日志邮件.网上只有零散的一些文章配置,没有一个完整的log4j2异步发邮 ...

  6. python并发发送http请求_用python异步发送http请求来提升效率

    需求 在一个我做的项目里,业务流程有一环需要调用http的接口. 这个接口本身是同步处理的,返回响应的速度会根据要处理的数据量不同而不同. 为了不拖慢主业务流程,客户要求采用异步的方式来请求,即只要得 ...

  7. Objective-c 异步发送Post请求的工具类

    原文链接iOS开发--post异步网络请求封装 有改动 HttpUtil.h #import <Foundation/Foundation.h> #import <UIKit/UIK ...

  8. 异步发送,那消息可靠性怎么保证?

    消息丢失可能发生在生产者发送消息.MQ本身丢失消息.消费者丢失消息3个方面. 生产者丢失 生产者丢失消息的可能点在于程序发送失败抛异常了没有重试处理,或者发送的过程成功但是过程中网络闪断MQ没收到,消 ...

  9. Spring Boot最新版集成邮件发送功能大全

    Spring Boot最新版集成邮件发送功能大全 前言 一.开启SMTP服务并获取授权码 二.创建Spring Boot项目 1.配置邮箱基本信息: 2.简单邮件发送: 3.发送带附件的邮件: 5.使 ...

最新文章

  1. BGP 最佳路径选择之 -- Origin
  2. 【机器学习】K-近邻算法-模型选择与调优
  3. 2014年高级计算机操作员工种代码36-323不可积分入户深圳吗,2014年深圳积分入户工种加分考证...
  4. bootstrap 仿实例
  5. 用微软的压力测试工具进行拒绝服务攻击
  6. 因Redis分布式锁造成的P0级重大事故,整个项目组被扣了绩效......,请慎用
  7. 海康SDK-javademo实现报错问题解决
  8. 智能计算机翻译,爱译网-智能翻译技术-人工智能翻译技术
  9. 区块链与程序员:赚钱还是创业
  10. windows 定时清理指定目录文件bat
  11. 常工院计算机学院,常亚楠-华中师范大学计算机学院
  12. 大型机、小型机、x86架构以及ARM架构服务器的区别大型机、小型机、x86架构以及ARM架构服务器的区别
  13. (附源码)SSM学科竞赛管理JAVA计算机毕业设计项目
  14. 福利福利!!!!!!!!往这看!!!!!
  15. 元音I、i 、ε、æ、a小总结
  16. C/C++:计算N的N次方的个位数(火眼金睛找规律,解决此题数据问题)
  17. 古诗词鉴赏,断句的重要性
  18. 分享多张图片到微信朋友圈
  19. ps的钢笔工具抠图方法
  20. 基于劈窗算法的地表温度反演算法

热门文章

  1. 我一定要说服他们php,七夕也不行,我一定要说服他们,PHP语言是最好的语言
  2. python 完全背包问题_动态规划——背包问题python实现(01背包、完全背包、多重背包)...
  3. html怎么拿json数据,如何使用Python从HTML数据中提取JSON数据?
  4. vue实现消息badge 标记_Vue $mount实战之实现消息弹窗组件
  5. wordpress表单数据验证_实战:Drupal迁移到WordPress
  6. python读取nc文件并转换成csv_如何使用Python读取NetCDF文件并写入CSV
  7. MongDB之shard_主从,副本集,分片的理解
  8. ajax beforeSend中无效果
  9. 前缀式计算(前缀表达式)
  10. Oracle和Mysql的区别 转载