后台任务和队列与 django
Background tasks and queue with django
我用 django 构建了一个无限绘图应用程序(类似于 webcanvas)。
我制作了另一个小型 python 应用程序,能够使用 cefpython 渲染 canvas 的区域。
我的目标是在我的服务器上执行后台任务以呈现 canvas 上需要更新的区域(我想避免降低我的 django 服务器的速度):
- 每当用户修改 canvas,
时,主要的 django 应用程序会向队列添加渲染任务
- 渲染应用程序将使用此队列并在后台线程中渲染区域。
最简单的方法是什么?
我是这样解决同样问题的:
- 存储在 PostgreSQL 中的队列(我使用它是因为它已经是,PostgreSQL 有足够的性能满足我的目的,我不想要过于复杂的基础设施)。
- 渲染正在使用 multiprocessing module. It's running with upstart。我正在使用 upstart,因为这是 运行 分离应用程序的最简单方法。
如果您想限制应用程序的可用资源,您可以设置
upstart 中的限制:limit rss 231236400 231236400
(大小以字节为单位),或 运行 使用 cpulimit 的应用程序。
我用 django 构建了一个无限绘图应用程序(类似于 webcanvas)。
我制作了另一个小型 python 应用程序,能够使用 cefpython 渲染 canvas 的区域。
我的目标是在我的服务器上执行后台任务以呈现 canvas 上需要更新的区域(我想避免降低我的 django 服务器的速度):
- 每当用户修改 canvas, 时,主要的 django 应用程序会向队列添加渲染任务
- 渲染应用程序将使用此队列并在后台线程中渲染区域。
最简单的方法是什么?
我是这样解决同样问题的:
- 存储在 PostgreSQL 中的队列(我使用它是因为它已经是,PostgreSQL 有足够的性能满足我的目的,我不想要过于复杂的基础设施)。
- 渲染正在使用 multiprocessing module. It's running with upstart。我正在使用 upstart,因为这是 运行 分离应用程序的最简单方法。
如果您想限制应用程序的可用资源,您可以设置
upstart 中的限制:limit rss 231236400 231236400
(大小以字节为单位),或 运行 使用 cpulimit 的应用程序。