gpt4 book ai didi

python - 如何在django View 中使用python多处理模块

转载 作者:太空宇宙 更新时间:2023-11-03 15:03:06 24 4
gpt4 key购买 nike

我有一个简单的函数,它遍历 URL 列表,使用 GET 检索一些信息并相应地更新数据库 (PostgresSQL)。该功能完美运行。但是,一次一个地浏览每个 URL 会浪费太多时间。

使用 python,我可以执行以下操作来并行执行这些任务:

from multiprocessing import Pool

def updateDB(ip):
code goes here...

if __name__ == '__main__':
pool = Pool(processes=4) # process per core
pool.map(updateDB, ip)

这工作得很好。但是,我试图找到如何在 django 项目上做同样的事情。目前我有一个函数( View )遍历每个 URL 以获取信息并更新数据库。

我唯一能找到的就是使用 Celery,但这对于我想要执行的简单任务来说似乎有点过于强大。

有什么简单的事情我可以做或者我必须使用 Celery 吗?

最佳答案

Currently I have a function (view) that go over each URL to get the information, and update the DB.

这意味着响应时间对你来说并不重要,而不是在后台(异步)做,如果你的响应时间减少 4(使用 4 个子进程/线程),你可以在前台做.如果是这种情况,您只需将示例代码放在 View 中即可。喜欢

from multiprocessing import Pool

def updateDB(ip):
code goes here...

def my_view(request):
pool = Pool(processes=4) # process per core
pool.map(updateDB, ip)
return HttpResponse("SUCCESS")

但是,如果您想在后台异步执行此操作,那么您应该使用 Celery 或遵循@BasicWolf 的建议之一。

关于python - 如何在django View 中使用python多处理模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35699707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com