我有一个简单的函数来遍历 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 项目上做同样的事情。目前我有一个函数(视图)可以遍历每个 URL 来获取信息并更新数据库。
我唯一能找到的是使用 Celery,但这对于我想要执行的简单任务来说似乎有点过于强大。
有什么简单的事情我可以做或者我必须使用芹菜吗?
目前我有一个函数(视图)可以遍历每个 URL 来获取
信息,并更新数据库。
这意味着响应时间对您来说并不重要,如果您的响应时间减少 4 个(使用 4 个子进程/线程),那么您可以在前台执行,而不是在后台(异步)执行。如果是这种情况,您只需将示例代码放在您的视图中即可。喜欢
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 的建议之一。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)