Python falcon API - 内部/外部python包使用最佳实践?

时间:2018-02-05 20:26:00

标签: python falconframework

我有一个名为'bel'的外部独立python包,它带有自己的CLI脚本,它使用我的基于Falcon的REST API来验证术语库中的术语。我还在REST API中使用此包来支持大多数REST API功能。

当我尝试从API内部运行的bel模块函数调用API而不是独立使用bel模块函数时,它无法访问API端点。

我添加了一个带有以下内容的try / except子句,以区分我正在运行'bel'功能的模式(在API服务内部或外部):

try:  # try to import API module and run call directly
    import <API module>
    ...
except ModuleNotFoundError as e:
    # call API via requests module as I'm running bel outside of API

这是正确的方法吗?有没有更好的办法?我有API代码污染我的独立bel包代码这样做,两者之间的依赖性比我想要的更强。

我甚至不确定描述我的情况的最好方式,这会阻碍我寻找好答案的能力。

1 个答案:

答案 0 :(得分:0)

如果您目前使用1个同步工作人员在Gunicorn应用程序中,请不要调用Gunicorn应用程序。它锁定它然后超时。

运行使用pdb破解的代码时,我注意到以下内容:

"timestamp": "2018-02-06T19:07:18.431785Z", "message": "WORKER TIMEOUT (pid:10265)

我的问题是当我对当前运行的REST API进行REST API调用时,Gunicorn应用程序超时,因为此开发盒只有1个同步工作器设置。当我使用超过1个异步工作者时,一切正常。