我正在开发一个使用Django和mongoengine的项目。当用户按下一个按钮时,就会产生一个call_command
触发器(django.core.management
--在我看来只是调用一个脚本),它并行地向多个服务器发送sshs,复制一些文件,解析它们,并将它们存储在数据库中。
问题是,当按下按钮并运行上述进程时,如果其他用户尝试使用该网站,则不会加载。
是因为芒果的锁吗?一旦按下按钮(因此,当连接到其他服务器时,还没有写入DB),就会发生这种情况,所以我认为这不是一个mongo问题。
那么,这是Django问题,同步调用命令吗?我需要用芹菜来完成这项任务吗?
发布于 2015-02-21 04:32:18
当您对外部系统进行同步调用时,它将在应用程序服务器中绑定一个线程,因此取决于您选择的应用程序服务器,以及您有多少并发线程/用户将决定这样做是否适合您。
通常,当您有长时间运行这样的请求时,使用像您建议的芹菜这样的后台处理系统是个好主意。
https://stackoverflow.com/questions/28605646
复制相似问题