Django+celery开启时报错

这篇具有很好参考价值的文章主要介绍了Django+celery开启时报错。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

django.db.utils.DatabaseError: DatabaseWrapper objects created in a thread can only be used in that same thread. The object with alias 'default' was created in thread id 19767205568
00 and this is thread id 1976775359680.

问题:

执行celery worker -A s1 -l info -P eventlet能正常,放立即执行的任务(delay)没有问题,不过放apply_async的任务时就会报上面的错误。

网上都说是版本的问题,我的版本是

celery                  4.4.0
Django                  4.2.1
django-redis            5.2.0
eventlet                0.33.3
redis                   4.5.4

解决办法:

由于-P eventlet是多线程任务的,改成单线程任务,用参数--pool=solo代替-P eventlet。

还需要把python3.9换成python3.8才可以,否则还会报其它错。

当前包的版本信息如下:

celery                  4.4.0
Django                  4.2.2
django-redis            5.3.0
eventlet                0.33.3
redis                   4.5.4

执行这个就正常了 文章来源地址https://www.toymoban.com/news/detail-513578.html

celery worker -A djangoTest -l info  --pool=solo

(venv38) D:\PYProject\djangoTest>celery worker -A djangoTest -l info  --pool=solo

 -------------- celery@QHT81 v4.4.0 (cliffs)
--- ***** -----
-- ******* ---- Windows-10-10.0.18362-SP0 2023-06-28 11:20:33
- *** --- * ---
- ** ---------- [config]
- ** ---------- .> app:         demos:0x1d462de8850
- ** ---------- .> transport:   redis://127.0.0.1:6379//
- ** ---------- .> results:     redis://127.0.0.1:6379/
- *** --- * --- .> concurrency: 12 (solo)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
 -------------- [queues]
                .> celery           exchange=celery(direct) key=celery


[tasks]
  . api.tasks.s1
  . api.tasks.s2

[2023-06-28 11:20:33,940: INFO/MainProcess] Connected to redis://127.0.0.1:6379//
[2023-06-28 11:20:33,946: INFO/MainProcess] mingle: searching for neighbors
[2023-06-28 11:20:34,959: INFO/MainProcess] mingle: all alone
[2023-06-28 11:20:34,965: INFO/MainProcess] celery@QHT81 ready.
[2023-06-28 11:20:38,046: INFO/MainProcess] Received task: api.tasks.s1[7b925061-eab0-4e5a-81fe-2710b5809d64]  ETA:[2023-06-28 03:20:48.044882+00:00]
[2023-06-28 11:20:48,056: INFO/MainProcess] Task api.tasks.s1[7b925061-eab0-4e5a-81fe-2710b5809d64] succeeded in 0.0s: 9
[2023-06-28 11:21:02,920: INFO/MainProcess] Received task: api.tasks.s1[e1cbafef-ef65-4ade-b139-d4af31500da5]  ETA:[2023-06-28 03:21:12.918404+00:00]
[2023-06-28 11:21:12,930: INFO/MainProcess] Task api.tasks.s1[e1cbafef-ef65-4ade-b139-d4af31500da5] succeeded in 0.0s: 9

到了这里,关于Django+celery开启时报错的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.2)简单快速的解决办法

    这个问题是说我们的Django框架版本比较新,已经不支持MySQL老版本5.7.2了,MySQL8或者更新的版本才是我们需要的或者说匹配的。 从问题出发的解决方案有两个,①卸载老版本的MySQL,安装项目支持的新版本 ②降低Django框架的版本 我个人觉得卸载安装MySQL太麻烦了,这里就说一

    2024年02月15日
    浏览(31)
  • 【报错】django.db.migrations.exceptions.NodeNotFoundError:

    从别处下载的Django源码在搭建的过程中遇到的错误 django.db.migrations.exceptions.NodeNotFoundError: Migration users.0001_initial dependencies reference nonexistent parent node (‘auth’, ‘0012_alter_user_first_name_max_length’) 依赖项引用不存在的父节点; 我遇到的是因为少编译迁移了一个app,从而导致另个一

    2024年02月09日
    浏览(37)
  • Django框架-使用celery(一):django使用celery的通用配置,不受版本影响

    目录 一、依赖包情况 二、项目目录结构    2.1、怎么将django的应用创建到apps包 三、celery的配置 2.1、celery_task/celery.py 2.2、celery_task/async_task.py 2.3、celery_task/scheduler_task.py 2.4、utils/check_task.py 四、apps/user中配置相关处理视图 4.1、基本配置 4.2、user的models 4.3、user的视图函数 五、

    2024年02月13日
    浏览(37)
  • celery笔记四之在Django中使用celery

    本文首发于公众号:Hunter后端 原文链接:celery笔记四之在Django中使用celery 这一篇笔记介绍一下如何在 Django 系统中使用 celery。 如果是想纯粹使用 celery,这一篇笔记可以略过。 本篇笔记目录如下: 文件配置 task 定义 运行 worker 我们这里使用前面的创建的 hunter Django 系统。

    2024年02月09日
    浏览(35)
  • Django+Celery学习笔记

    Django+Celery学习笔记 DJANGO中使用CELERY实现定时任务(用DJCELERY) https://www.cnblogs.com/wumingxiaoyao/p/8521567.html Django中celery机制的使用总结 https://blog.csdn.net/Enjolras_fuu/article/details/108513357 代码 https://github.com/furuiyang0715/celery_learn 参考 https://www.celerycn.io/yong-hu-zhi-nan/canvas-she-ji-gong-zuo-liu-che

    2024年02月12日
    浏览(30)
  • Django使用Celery异步

    安装包 1.在项目文件的根目录下创建目录结果 2. 在main.py文件中  3.config.py文件 4.在项目后端文件下执行启动命令,即可,此时说明clery已经安装成功! 5.在task.py文件中将发送短信的任务注册到task中必须使用装饰器并在装饰器中设置别名便于区分 6.在视图函数中调用异步任务

    2024年02月22日
    浏览(34)
  • django celery 记录

    django celery 记录 dvadmin-celery Django+Django-Celery+Celery的整合实战 https://cloud.tencent.com/developer/article/1445252 https://blog.csdn.net/wowocpp/article/details/131475484 https://docs.celeryq.dev/en/latest/django/first-steps-with-django.html https://docs.celeryq.dev/en/latest/django/index.html http://docs.celeryproject.org/en/latest/ https://

    2024年02月12日
    浏览(27)
  • redis(其它操作、管道)、django中使用redis(通用方案、 第三方模块)、django缓存、celery介绍(celery的快速使用)

    1 redis其它操作 2 redis管道 3 django中使用redis 3.1 通用方案 3.2 第三方模块 4 django缓存 5 celery介绍 5.1 celery的快速使用

    2024年02月07日
    浏览(40)
  • Django高级扩展之celery使用

    Celery是一个简单、灵活、可靠的分布式系统,用于处理大量消息,同时为操作提供维护此类系统所需的工具。是一个专注于实时处理的任务队列,同时还支持任务调度。 目录 应用场景 问题 解决 celery架构图 安装 配置celery Settings.py配置 创建celery 修改__init__ 开启celery 异步执行

    2024年02月11日
    浏览(26)
  • Django(21):使用Celery任务框架

    Django Web项目中我们经常需要执行耗时的任务比如发送邮件、调用第三方接口、批量处理文件等等,将这些任务异步化放在后台运行可以有效缩短请求响应时间。另外服务器上经常会有定时任务的需求,比如清除缓存、备份数据库等工作。Celery是一个高效的异步任务队列/基于

    2024年02月07日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包