1

我正在编写一个小型 Django 网站,该网站将为用户提供一种删除 Flickr 上所有联系人的方法。

这主要是一个学习Selenium的练习,而不是真正有用的东西——因为 Flickr API 不提供删除联系人的方法,我使用 Selenium 让实际的 Web 浏览器执行实际删除联系人的操作。

因为这可能需要一段时间,所以我想向用户显示一条消息,说明正在删除,然后在删除完成时通知他们。

在 Django 中,立即将网页返回给用户的正确方法是什么,同时在服务器上执行在页面返回后继续执行的任务?

我的 Django 视图函数是否会使用Python 线程模块使删除代码在另一个线程中运行,同时将页面返回给用户?

4

2 回答 2

5

Consider using some task queues - one of the most liked by Django community solution is to use Celery with RabbitMQ.

于 2012-10-01T17:02:20.517 回答
3

一旦我需要这个,我就设置了另一个 Python 进程,它将通过 xmlrpc 与 Django 通信——这个另一个进程将处理长请求,并能够回答每个请求的状态。Django 视图将调用该其他进程(通过 xmlrpc)对作业进行排队,并查询作业状态。我在 django 中创建了几个正确的 json 视图来查询 xmlrpc 进程 - 并使用 javascript 异步调用这些视图(又名 Ajax)来更新 html 页面

于 2012-10-01T19:16:54.243 回答