多任务处理的问题
我今天碰到了多任务处理的问题,需要在软件架构上进行良好的设计才能实现。当我暂时没有想到好的方法。问题如下:
C对象是请求的发起者(比如,它发起了一个R请求)。S是请求的接收者(它接收到请求后可以自己处理也可以发给其它模块处理)。但此R请求比较复杂(可拆分为a,b,c三个子请求,且a,b,c中有些请求是异步的,不能直接返回)。
现在的设计目标是在代码逻辑清晰且连贯的前提下,尽量提供系统的吞吐量。请问该如何设计?
注:
1. 当S接收到请求后,需要处理a,b,c但a,b,c对于S来讲都是单独的事务之间没有什么联系(因为有些用户可能只会发送a请求给S,而不会同时携带b,c),这样S在什么时候返回就成了个问题(换句话说,S有什么简便的方式判断a,b,c都已经处理完成)。
2. 当C接收到R请求处理完成的消息后,还要进行一些后续处理。但如果C发出R请求后为了提高系统吞吐量没有等待返回的话,当接收到R请求处理完成的消息后,它可能已经不知道为什么发出此请求了。