我们假设应用程序接收到对有限数量的资源进行操作的请求,这些资源一次只支持一个操作。下面是一个例子:
/GET do_stuff?resource=A&other_params
/GET do_stuff?resource=B&other_params
其思想是,来自资源A的操作应该放在进程A中,并在进程B中请求B。如果接收到对资源A的任何其他请求,则它应该在进程A中的队列中。
这可以使用Rabbit MQ或其他类似的方法来实现,甚至可以使用phusion之外的离散编程来实现,但在我的情况下,如果有一种方法可以直接从应用程序配置或任何其他想法来实现这一点,那将是有趣和实用的。
更清楚地说,资源变量可以有大约500个值,所以硬编码或使用app group name选项是不合适的。
逻辑本身应该看起来像这样:
incoming request
if there is a process that is running a request for the resource
put request into process queue
else
spawn or use free process
进程的数量不应该在某一时刻过多,因为请求几乎是随机到达的。
转载请注明出处:http://www.cdylmjg.com/article/20230402/2154973.html