【发布时间】:2019-03-29 04:32:48
【问题描述】:
我有两台服务器,一台提供 REST API 以接受来自用户的数据并维护产品详细信息列表的主服务器。此服务器还负责在产品更新/创建后立即与辅助服务器共享产品列表(产品数据的子集)。 另请注意,辅助 url 取决于产品详细信息,而不是修复服务器。
用 Django 编写的主服务器。我使用 django model db 信号作为产品更新、创建和删除事件。 现在的问题是我不想阻塞我的主服务器 REST 调用,直到它将详细信息填充到辅助服务器。我需要一些调度程序的东西来做到这一点,即创建一个任务来在后台填充数据而不阻塞我当前的线程。
我发现python asyncio模块带有一个函数'run_in_executor',它一直工作到现在,但是我不知道在wsgi服务器中运行django的副作用,谁能解释一下?或任何其他替代品?
我找到了 django 频道,但它需要额外的东西,比如单独运行工作线程,redis 缓存。
【问题讨论】:
-
不要在 Django 等 WSGI 应用程序中运行后台任务。使用像 Celery 这样的任务队列。
-
我的应用在 azure 中部署为 webapp,无法运行多个进程。并尽量避免redis缓存
-
假设您是一名驾驶教练,而您的学生说“我尽量避免使用方向盘。”。你会怎么回答?
-
这是一个不错的选择,但我要求提供一个我正在开车的情况,并要求提供自动驾驶功能,以便我可以吃完我的食物
标签: python django python-asyncio