Python falcon API - internal/external python 包使用最佳实践?

Python falcon API - internal/external python package use best practice?

我有一个名为 '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 个同步工作者的 Gunicorn 应用程序中,请不要调用该 Gunicorn 应用程序。它锁定它然后超时。

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

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

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