深圳家装互联网网站浙江省城乡建设信息港

张小明 2026/1/11 16:08:38
深圳家装互联网网站,浙江省城乡建设信息港,幼儿网站源代码,网络营销就业方向使用 Celery Redis 执行异步任务引言一、主要功能二、实现步骤2.1 安装依赖2.2 配置 Celery2.3 在 settings.py 中配置 Celery2.4 定义异步任务#xff08;tasks.py#xff09;2.5 在 View 中触发任务2.6 错误修正引言 计算机专业硕士在读#xff0c;主要研究方向是特定目…使用 Celery Redis 执行异步任务引言一、主要功能二、实现步骤2.1 安装依赖2.2 配置 Celery2.3 在 settings.py 中配置 Celery2.4 定义异步任务tasks.py2.5 在 View 中触发任务2.6 错误修正引言计算机专业硕士在读主要研究方向是特定目标大斜视角目标检测与定位。因为要做的是特定目标公开数据集较少经过多方考虑还是决定要自建数据集。最终考虑的解决方案还是BlenderPython API的方式项目起名叫RealEarthStudio。这系列文章主要对开发过程进行记录方便我个人后续查看也给相类似方向的同学提供一个思路。【项目目录】项目目录链接一、主要功能功能使用 Celery Redis 执行异步任务。背景上一篇文章已经安装了Redis数据库现在配置Celery将耗时任务交给后台工作进程处理。效果码云项目链接https://gitee.com/charlsewyq/RealEarthStudio二、实现步骤2.1 安装依赖在命令行中运行pipinstallcelery redis django-celery-results2.2 配置 Celery在项目根目录与settings.py同级创建celery.pyimportosfromceleryimportCelery# 设置 Django 的默认设置模块os.environ.setdefault(DJANGO_SETTINGS_MODULE,RealEarthStudio.settings)appCelery(RealEarthStudio)# 从 Django settings 中加载配置以 CELERY_ 开头的项app.config_from_object(django.conf:settings,namespaceCELERY)# 自动发现各 app 下的 tasks.pyapp.autodiscover_tasks()修改__init__.py确保 Celery 应用被加载from.celeryimportappascelery_app __all__(celery_app,)2.3 在 settings.py 中配置 Celery# Celery 配置CELERY_BROKER_URLredis://127.0.0.1:6379/0# 使用 Redis 作为消息代理CELERY_RESULT_BACKENDdjango-db# 将任务结果存入数据库需安装 django-celery-resultsCELERY_ACCEPT_CONTENT[json]CELERY_TASK_SERIALIZERjsonCELERY_RESULT_SERIALIZERjsonCELERY_TIMEZONEAsia/Shanghai# 如果使用 django-celery-results添加到 INSTALLED_APPSINSTALLED_APPS[django_celery_results,]2.4 定义异步任务tasks.py在app中新建tasks.py文件fromceleryimportshared_taskimportosfromdjango.utilsimporttimezonefrom.modelsimportRenderingTaskshared_taskdefexecute_render_task(render_id): 异步执行渲染任务 try:render_taskRenderingTask.objects.get(render_idrender_id)# 写入信息文件full_filepathos.path.join(render_task.rendered_result_dir.path,info.txt)withopen(full_filepath,w,encodingutf-8)asf:f.write(f 渲染任务信息 \n)f.write(f渲染任务ID:{render_task.render_id}\n)f.write(f渲染时间:{render_task.render_time.astimezone(timezone.get_default_timezone())}\n)f.write(f渲染器类型:{render_task.renderer_type}\n)f.write(f图像分辨率:{render_task.image_width}×{render_task.image_height}\n)f.write(f总像素数:{render_task.image_pixels}\n\n)f.write(f 模型信息 \n)f.write(f目标模型数量:{render_task.target_models.count()}\n)ifrender_task.target_models.exists():fori,target_modelinenumerate(render_task.target_models.all(),1):all_categoriesset(target_model.category.all())forcatinlist(all_categories):parentcat.parentwhileparent:all_categories.add(parent)parentparent.parent category_names, .join([str(cat.name)forcatinall_categories])f.write(f 目标模型{i}:{target_model.model_id}({category_names})\n)f.write(f场景模型数量:{render_task.scene_models.count()}\n)ifrender_task.scene_models.exists():fori,scene_modelinenumerate(render_task.scene_models.all(),1):category_names, .join([str(cat.name)forcatinscene_model.category.all()])f.write(f 场景模型{i}:{scene_model.model_id}({category_names})\n)f.write(f\n 光照参数 \n)f.write(f日光方位角:{render_task.sun_azimuth}°\n)f.write(f日光高低角:{render_task.sun_elevation}°\n\n)f.write(f 相机参数 \n)f.write(f相机距离列表:{render_task.camera_distances}\n)f.write(f相机高低角列表:{render_task.camera_elevations}\n)f.write(f相机方位角间隔:{render_task.camera_rotation_step}°\n\n)returnf渲染任务{render_id}完成exceptExceptionase:# 处理错误情况returnf渲染任务{render_id}失败:{str(e)}2.5 在 View 中触发任务在app中修改views.py文件fromrest_framework.viewsimportAPIViewfrom.tasksimportexecute_render_taskfromutils.statusimportresponseasmy_responseclassStartRender(APIView):staticmethoddefget(request,render_id):# 开始渲染print(准备启动渲染任务)execute_render_task.delay(render_id)print(渲染任务启动完成)# 返回信息data{render_id:render_id,# render_time: render_task.render_time,}returnmy_response.success(datadata,message开始渲染)2.6 错误修正我在做的时候出现一个问题。查看Celery日志celery -A RealEarthStudio worker --loglevelinfo报错[2025-12-17 11:55:37,580: ERROR/MainProcess] Task handler raised error: ValueError(‘not enough values to unpack (expected 3, got 0)’)billiard.einfo.RemoteTraceback:Traceback (most recent call last):File “D:\ProgramData\anaconda3\envs\realearthstudio_env\Lib\site-packages\billiard\pool.py”, line 362, in workloopresult (True, prepare_result(fun(*args, **kwargs)))^^^^^^^^^^^^^^^^^^^^File “D:\ProgramData\anaconda3\envs\realearthstudio_env\Lib\site-packages\celery\app\trace.py”, line 683, in fast_trace_tasktasks, accept, hostname _loc^^^^^^^^^^^^^^^^^^^^^^^ValueError: not enough values to unpack (expected 3, got 0)The above exception was the direct cause of the following exception:Traceback (most recent call last):File “D:\ProgramData\anaconda3\envs\realearthstudio_env\Lib\site-packages\billiard\pool.py”, line 362, in workloopresult (True, prepare_result(fun(*args, **kwargs)))^^^^^^^^^^^^^^^^^^^^File “D:\ProgramData\anaconda3\envs\realearthstudio_env\Lib\site-packages\celery\app\trace.py”, line 683, in fast_trace_tasktasks, accept, hostname _loc^^^^^^^^^^^^^^^^^^^^^^^ValueError: not enough values to unpack (expected 3, got 0)这个报错点在celery/app/trace.py的fast_trace_task在 Windows 上非常常见本质通常不是你任务函数写错了而是 Celery 在 Windows 的多进程billiard/prefork兼容性问题导致 worker 内部的局部变量_loc没有被正确初始化于是解包失败。Celery 官方文档也明确提到不支持 Microsoft Windows。解决方案Windows 下用solo池跑 worker在settings.py中添加CELERY_WORKER_POOLsolo即可正常运行。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

万网主机 网站重做外部链接链轮的建设对于网站提

LobeChat部署常见问题深度解析与实战指南 在构建个性化AI助手的浪潮中,一个直观、流畅且功能丰富的前端界面往往决定了用户体验的成败。尽管大语言模型的能力日益强大,但直接调用API对普通用户而言既不友好也不实用。正是在这种背景下,LobeC…

张小明 2026/1/10 22:27:28 网站建设

哪里有网站建设培训班中国新闻社副社长

在智能音视频设备的开发过程中,时序对齐与系统级调试始终是困扰工程师的核心难题之一。尤其是在边缘端部署轻量化AI推理模块时,如何精准捕捉音频采集、视频帧处理与神经网络推断之间的延迟链条,直接决定了用户体验是否“自然”。传统方法依赖…

张小明 2026/1/10 22:34:08 网站建设

海关申报网站怎么做宁波做网站建设推广

嵌入式视觉深度感知部署实战:从问题诊断到性能调优的全流程指南 【免费下载链接】librealsense Intel RealSense™ SDK 项目地址: https://gitcode.com/GitHub_Trending/li/librealsense 当你第一次尝试在嵌入式设备上部署深度相机时,是否遇到过这…

张小明 2026/1/10 15:38:36 网站建设

佛山微网站建设 天博iis如何设置服务器上网站空间大小

微博图片批量下载工具使用指南 【免费下载链接】weiboPicDownloader Download weibo images without logging-in 项目地址: https://gitcode.com/gh_mirrors/we/weiboPicDownloader 还在为逐张保存微博图片而烦恼吗?想要系统备份心仪博主的相册内容却无从下手…

张小明 2026/1/10 15:39:44 网站建设

做纯静态网站怎么样如何做自己的网站后台

Flutter Web CanvasKit渲染引擎:突破性能瓶颈的终极解决方案 【免费下载链接】engine The Flutter engine 项目地址: https://gitcode.com/gh_mirrors/eng/engine 还在为Flutter Web应用的卡顿和渲染不一致而烦恼吗?作为Flutter官方倾力打造的高性…

张小明 2026/1/10 15:38:41 网站建设

上海市建设工程交易服务中心网站小程序商店怎么接入视频号

Qwen3-VL生成技术博客的SEO关键词布局策略分析 在多模态AI迅猛发展的今天,一个现实问题正摆在开发者面前:如何让强大的视觉语言模型真正“落地”?不是停留在论文里的指标,而是能被普通用户随手使用、被企业快速集成、在复杂场景中…

张小明 2026/1/10 15:41:47 网站建设