生产者消费者模式的一次实际应用
来源:互联网 发布:mac怎么做苹果铃声 编辑:程序博客网 时间:2024/05/16 08:31
现在有这样一个需求:网站有很多合作站点,要求每天定时向合作站点负责人发送邮件通知该站点每日的引流情况;向运营发送网站各方面整体的观测数据.
1. 流程分析
- 引流数据.可以通过百度统计的接口来获取.
- 邮件发送.
这2步中间还穿插着数据的处理与邮件的应用等,不过这不是该文的重点.目前我们已经拥有邮件数据.(在邮件数据里已经包含邮件的全部信息,包括收件人等).重点是如何快速发送所有邮件.
首先可以抽象一下,无论是给各合作站点负责人发送邮件,还是给网站运营发送邮件,都是发送邮件.由于邮件中含有包括收件人在内的所有信息,因此我们在进行邮件分发的时候,不必考虑邮件内容是如何构造出来的.只关心邮件发送这一个过程.
2.生产者与消费者模式的实践.
邮件内容入队列,多个线程作为消费者取数据,这是基本做法.
考虑作为服务对外暴露的方法分为两个过程:
1.构收集数据并且数据入队列.
该过程,两种分发是不同的,因为后台数据的不同,导致后台构造邮件内容的过程也不近相同,因此给运营发邮件和给引流方发邮件是不同的过程.
以给运营发邮件为例:
createEmail();
这样就把队列填充完毕.
- 分发邮件
该过程与接收方无关.只需要线程取数据即可,因此属于一个方法.
distributeEmailMethod();
在createEmail()方法中使用queue.offer(data)填充队列,在distributeEmailMethod()方法中使用queue.poll取数据.需要注意,取出数据后要新起一个线程,因此要给该线程提交一个任务.该任务要继承thread类或者实现runnalbe接口,可以把任务包装在一个内部类里面,在内部类里的run()中添加数据处理逻辑.
参考方腾飞的文章.
阅读全文
0 0
- 生产者消费者模式的一次实际应用
- 生产者消费者模式与实际应用
- 生产者消费者模式与实际应用
- 多线程应用--生产者、消费者模式
- Java 生产者 与 消费者 的实际运用
- 多线程的并发执行应用(生产者消费者模式)
- 线程的生产者消费者模式
- 典型的生产者消费者模式
- 加锁情况下生产者消费者的应用
- 生产者消费者模式的线程同步问题
- 基于BlockingQueue的生产者消费者模式实现
- 基于ACE_Message_Queue的生产者消费者模式
- 面向过程的生产者消费者模式
- 使用Condition的生产者消费者模式
- JAVA 生产者消费者模式的实现
- 生产者消费者模式的一种java实现
- Java多线程下的生产者消费者模式
- 构建生产者,消费者模式的队列
- SpringMVC Ajax 获取参数的方法
- Java内部类详解
- &0xff的原因
- Android 技能总结,各种基础和进阶内容的资料收集
- Command and Control – DNS
- 生产者消费者模式的一次实际应用
- 实验4 空间关系可视化
- Swap Two Nodes in Linked List
- 最长上升子序列
- 彻底解决Oledb连接Excel数据类型不统一的问题
- PWA 程序实践
- Kotlin Primer·类与对象(上)
- 学会了 C 语言真的可以开发出很多东西吗?
- 315晚会实在涨知识