1

我正在使用 Django 开发分类器服务,用户可以使用类似的 api 构建模型http://localhost/api/buildmodel,但是,因为构建模型需要很长时间,可能需要 2 个小时,而且我正在使用网页来显示构建结果模型。如何设计我的 Django 程序以在构建完成后立即返回并显示结果?也许我可以使用 ajax,但我想在 Python 中实现它,比如使用异步方法并在构建后调用回调函数,任何建议都将不胜感激。

4

2 回答 2

3

您需要使用任务队列管理器。Celery是迄今为止最受欢迎的 Django 任务管理器。这个想法是你给这个管理器一个任务,然后它处理任务,一旦完成,它可以触发一个回调函数。在回调函数中,您可以运行逻辑以通知用户任务已完成。

于 2013-02-25T03:29:46.957 回答
0

One way to do it is to create a row in a persistent database (or a redis key/value pair) for the task which says if it is running or finished. Have the code set the value to be running when the task starts and done when the task completes. Then have an AJAX call do a GET lookup on a URL that sends the status for the task via a web service. You can put that in a setInterval() to periodically poll the database to see if it is done. You could send an email on completion or just have a landing page / dashboard that shows the status of the tasks being run.

于 2013-02-25T03:27:20.400 回答