Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 设计月度后付费发票模块_Design Patterns_Architecture - Fatal编程技术网

Design patterns 设计月度后付费发票模块

Design patterns 设计月度后付费发票模块,design-patterns,architecture,Design Patterns,Architecture,我们目前有一个发票系统,该系统通过读取某个用户在该月计费点的该月数据库中的所有交易来生成月度发票 发票模块和交易模块位于同一块巨石和数据库中 问题是,这个过程非常昂贵,而且需要花费一些时间,特别是如果该用户当月有大量事务(数百万)的话 我们想知道是否有针对这个问题的设计模式/架构方法 我们愿意将invoice模块提取到它自己的服务中,但只是想弄清楚如何正确地实现它 非常感谢您的帮助。如果可以预测每天的汇总,只需每晚运行一个批处理过程,即可将前一天的交易汇总到汇总行中。如果仍然太多,每小时运行一次

我们目前有一个发票系统,该系统通过读取某个用户在该月计费点的该月数据库中的所有交易来生成月度发票

发票模块和交易模块位于同一块巨石和数据库中

问题是,这个过程非常昂贵,而且需要花费一些时间,特别是如果该用户当月有大量事务(数百万)的话

我们想知道是否有针对这个问题的设计模式/架构方法

我们愿意将invoice模块提取到它自己的服务中,但只是想弄清楚如何正确地实现它


非常感谢您的帮助。

如果可以预测每天的汇总,只需每晚运行一个批处理过程,即可将前一天的交易汇总到汇总行中。如果仍然太多,每小时运行一次。在调用发票完成之前,只需确保您拥有所有记录(每小时1次)。大多数发票系统都是批处理的,而不是出于这个原因的动态查询。

您的目标是什么?因为花费的时间太长,所以加快最终发票流程?分散负载,使性能不受影响?这是一个随需应变的过程吗?@RobConklin这是为了加快这个过程。目前,为有大额交易的人生成一个需要很长时间。