【发布时间】:2021-11-01 07:28:25
【问题描述】:
在我的 Django 应用程序中,在 __init__.py 中,我有一个启动事件循环的类。
class X:
def __init__(self):
self.__loop = asyncio.get_event_loop()
async def foo(self):
...
def do_stuff(self):
# some logic here
self.__loop.run_until_complete(foo())
在__init__.py我刚刚有
x = X()
在我的 Django 视图中,我愿意
from myapp import x
def example_view(request):
result = x.do_stuff()
return JsonResponse({"result": result})
但问题在于,对于 uWSGI,如果处理请求的线程与初始化期间使用的线程相同,我会收到 Django 的 SynchronousOnlyOperation 异常,因为它检测到该特定线程中正在运行的事件循环。
所以我的问题是,有没有办法不使用该初始化线程来处理请求或解决此问题的其他替代方法?
uwSGI配置为运行多进程多线程,--enable-threads
【问题讨论】:
标签: python django python-asyncio uwsgi