版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35559756/article/details/84058488
优化长时间操作导致的问题
具体业务场景:
获取任务功能会批量选择多个任务,这种任务里面有很多图片(200张*600kb),当点击确定获取任务时,会从远程服务器上下载多个任务的数据,本地服务器会根据解析数据并根据数据中的文件信息到ftp中下载,由于该文件较多且大导致页面空白时间较长
优化方式:
0、先优化性能,当性能无法优化时优化体验:
def genThumbnail(data):
pass
from multiprocessing.dummy import Pool as ThreadPool
my_pool = ThreadPool()
linds = my_pool.map(genThumbnail, temp_data)
my_pool.close()
my_pool.join()
1、进度跟踪
实现本地服务器操作进度实时回显到页面
原因: 获取任务操作本身主要是为查看图片,通过这种阻塞式的可以使得逻辑更加清晰,出错率更低
2、长时间任务后台化
将从ftp下载的逻辑放到后台实现,该线程会从ftp中下载文件到本地服务器的静态文件目录
当用户点击任务查看详情时,
能够从static目录加载图片的会直接加载,
不能的则全部添加一个手动加载和总体自动加载,
手动加载只有下载和进度
总体自动加载有进度条、暂停、继续、停止