由于单个IOLoop,Health Check API被阻止

问题描述 投票:0回答:2

我有一个龙卷风应用程序,我们有两个API / health和/ make调用/ make API需要10分钟来构建所需的资源并将其加载到内存,在此期间,对/ health的调用被阻止,因为服务器被标记为不良。什么是构建/健康API的更好方法。

python tornado ioloop
2个回答
0
投票

这是一个很好的和普遍的做法(是有原因的),以move long blocking operations from the main thread into a separate thread/pools /芹菜/等。如果你有资源建设这样做,你与/health主线程是畅通和可用。


0
投票

我相信将阻塞过程移动到新线程中的最简单,也是最像龙卷风的方法是使用tornados子进程impl。这里描述:https://www.tornadoweb.org/en/stable/process.html#tornado.process.Subprocess

简而言之:我们的想法是在一个新线程中启动build进程,其中I / O被添加到IOLoop,就像任何其他非阻塞I / O资源一样。实际上,新进程(子进程/子进程)与主龙卷风进程完全分离,但是它可以隐藏这一事实。

© www.soinside.com 2019 - 2024. All rights reserved.