我有一个简单的函数来检查URL列表,使用GET
来检索一些信息并相应地更新DB(PostgresSQL
)。该功能完美。但是,一次一个地浏览每个URL会说多少时间。如何在django视图中使用python多重处理模块
使用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的函数(视图)来获取信息,并更新数据库。
我能找到的唯一东西就是使用芹菜,但是对于我想要执行的简单任务来说,这似乎有点压倒性。
有什么简单的,我可以做或我必须使用芹菜?
这是一个重复出现的任务吗?也许一个自定义管理命令作为cronjob运行是另一种选择。 – ilse2005
这真的取决于你想要的响应时间。您可以让服务器在处理Celery任务后立即响应,或者可以执行多处理,然后仍需要一些时间。不过,不要打扰'多处理',我建议使用优秀的'joblib'库。 –