python - 在 django 中使用多线程冻结站点
问题描述
我正在制作一个 Django 站点,我必须在其中上传图像,上传后,在后台,我正在对我正在使用的图像进行一些处理,Threading
它也成功地工作,因为之前上传图像 POST 请求用于需要 10-20 秒,但现在它只发生在几分之一秒内,所有处理都发生在后台,但问题是当该处理发生在后台时......如果我想继续,Django 没有任何新的 HTTPRespone 含义到其他一些链接它只是旋转和旋转,直到该线程的工作完成,这是我的代码:
def upload(requests):
if requests.method == 'POST':
img = requests.FILES['image']
img_uploader = Image(image=img)
img_uploader.save()
image_link = str(img_uploader.image).split("/")[-1]
start_threading_work(image_link, img_uploader.image_id) # code of this function is below
print("UPLOAD FUNCTION OVER")
return redirect('/') # it successfully redirects
def start_threading_work(image_link, image_id):
keyword_thread = threading.Thread(target=image_keyword_generator, args=(image_link, image_id), daemon=True)
keyword_thread.start()
encoding_thread = threading.Thread(target=ImageEncoding, args=(image_link, image_id), daemon=True)
encoding_thread.start()
正如您所看到的上传函数的倒数第三行,start_threading_work(__, __)
它启动线程并重定向我。但是它不会加载任何新页面,直到线程的工作结束,所以如果我必须在任何一种情况下等待,那么使用线程有什么意义!他们的任何解决方案也是如此,否则我在这里犯了某种错误。
有关更多信息,您可以在此处查看我的整个网站的代码:https ://github.com/pritishmishra703/AwesomeImage
谢谢
解决方案
推荐阅读
- powerquery - 克服 #NUM 的 PowerQuery 语法!错误
- javascript - 带有网络组件、发光元素、聚合物的拖放列表
- python - 如何向工厂方法添加提示?
- python - 用 Ridge 在 gridsearchcv 中选择最佳模型的标准是什么
- python-3.x - Beautiful Soup 通过 id 找到 td 为什么这不起作用
- python - 无法使用子进程执行 sudo 命令
- sql-server - Snowflake SSRS ODBC error : No active warehouse selected in the current session. Select an active warehouse with the 'use warehouse' command
- linux - Ubuntu 中的 GitHub 克隆问题
- flutter - Dart/Flutter 中的多态性
- validation - Kotlin 数据类强制值约束