如何结合Django应用asyncio协程与ThreadPoolExecutor实现多线程处理?

2026-05-16 16:260阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计612个文字,预计阅读时间需要3分钟。

如何结合Django应用asyncio协程与ThreadPoolExecutor实现多线程处理?

Django 视图函数执行时,不在主线程中,直接使用 loop=asyncio.new_event_loop() 创建异步事件循环。

Django视图函数执行,不在主线程中,直接loop = asyncio.new_event_loop()
# 不能loop = asyncio.get_event_loop() 会触发RuntimeError: There is no current event loop in thread

因为asyncio程序中的每个线程都有自己的事件循环,但它只会在主线程中为你自动创建一个事件循环。所以如果你asyncio.get_event_loop在主线程中调用一次,它将自动创建一个循环对象并将其设置为默认值,但是如果你在一个子线程中再次调用它,你会得到这个错误。

阅读全文

本文共计612个文字,预计阅读时间需要3分钟。

如何结合Django应用asyncio协程与ThreadPoolExecutor实现多线程处理?

Django 视图函数执行时,不在主线程中,直接使用 loop=asyncio.new_event_loop() 创建异步事件循环。

Django视图函数执行,不在主线程中,直接loop = asyncio.new_event_loop()
# 不能loop = asyncio.get_event_loop() 会触发RuntimeError: There is no current event loop in thread

因为asyncio程序中的每个线程都有自己的事件循环,但它只会在主线程中为你自动创建一个事件循环。所以如果你asyncio.get_event_loop在主线程中调用一次,它将自动创建一个循环对象并将其设置为默认值,但是如果你在一个子线程中再次调用它,你会得到这个错误。

阅读全文