python-3.x - 如何在烧瓶中处理大型任务
问题描述
我正在为电子商务网站使用烧瓶框架,它为每个产品图像添加一个水印,我想在烧瓶 cli 中添加命令来重新生成所有图像,但是有很多关于 80,000 个图像的图像我该如何管理这个任务
解决方案
我将建议使用以下方法(我正在为获取大量数据而做):
用 Python 编写一个脚本,它以图像名称/路径作为参数并在后台运行,或者可能是一个 cron。它将继续检查您的数据库或 Kafka,上传图像时将在哪里发布事件。
从烧瓶中,您只需要继续阅读任务的状态或使用 ajax 进行一些异步调用以继续发布状态
或者您可以发送如下 CLI 命令:
import os
os.system('Your command with parameter(s)')
总的来说,我可以看到您将不得不结合使用一些后台作业以及 Ajax 或 Async 调用
为了使处理更快,您可以使用线程。但请确保您的系统内存足够并且打开文件限制足够好。如果有紧缩或您想让它优化。让您的图像处理功能休眠一段时间。伪代码如下:
'''python
import threading
import time
import os
def funImageProcessor(self, argImagePath,Arg2):
#do your Stuffs here
time.sleep(3) #use this to run your threads in optimal way
for image in Images:
threadImg = threading.Thread(target=funImageProcessor, args=(
self, argImagePath,Arg2))
self.threadsImg.append(threadImg)
threadImg.start()
for tpo in self.threadsImg:
tpo.join()
'''
推荐阅读
- javascript - 在没有 JQuery 的特定容器上创建“手电筒”效果
- reporting-services - 保留不存在数据的行标签 SSRS Tablix
- c++ - 类构造器上的指针
- reactjs - RTL:仅针对选定的单元测试模拟自定义 React 挂钩
- html - 使图像占据页面上的所有剩余空间而不创建滚动条
- r - 用一些包编写的代码在 renderPlot 函数中给出了空白输出
- postgresql - PL/pgSQL 函数会自行自动提交吗?
- tensorflow - DDQN Cartpole 问题的 TensorFlow 问题
- r - 在R中按短语过滤单词列表
- php - 获取依赖项 Ids 算法