【发布时间】:2013-05-08 23:22:12
【问题描述】:
这个问题是关于建筑/设计的:
我有一个消费者需要执行 x 个任务,我应该什么时候考虑将消费者分解为更小的任务和/或将更小的任务添加到他们自己的消费者中?
例子:
消费者 FooBarShipping 确实
- 为报告添加数据库条目
- 为帐户添加数据库条目
- 为运输添加数据库条目
- 根据需要生成运输发票(PDF 或其他格式)
- 创建发货通知
- 为帐户创建通知
所以我的问题是,我何时将要点分解为较小的消费者?消费者运行良好,但我觉得它变得太大,需要重构为更小、更易于管理的流程。
每个要点都应该是它自己的消费者吗?我可以看到将它们分成三个消费者
- 数据库
- pdf(文件)
- 通知
但是,消费者应该做的最小工作单元是什么?我真的需要消费者来运行 sql 语句吗?
看过
在我看来,消费者希望完成基本任务,从而启动其他基本任务。
【问题讨论】:
-
这是针对 php/rabbitmq/messagequeue 特定问题还是一般设计模式/架构?
-
项目符号中有依赖关系吗? IE。任何子弹都必须在其他人之前执行吗?
-
@Fendy 是的,它是 php/rabbitmq,但也是通用设计模式/架构
-
@jgauffin 唯一的依赖是需要为通知创建 pdf
标签: php design-patterns architecture rabbitmq message-queue