在 Django 中使用 SQLite 作为 Celery 代理

在 django 中使用 sqlite 作为 celery 代理

redis 和 rabbitmq 可能是使用 celery 时的首选代理,但当您在本地开发时,它们可能会让人感觉大材小用。 celery 5.4 的文档提到您可以使用 sqlite 作为本地开发的实验代理。然而,当您导航到 celery 的后端和代理页面时,唯一提到的 sql 是针对 sqlalchemy 后端。值得庆幸的是,该页面指出,“本节并未全面介绍后端和代理。”

这篇文章将向您展示如何在 django 项目中为 celery 实现 sqlite 代理(或任何 sql!)。这篇文章不会教你使用 celery:查看 celery 官方文档。

在我们开始之前

出于本文的目的,我们假设您已经有一个现有的 django 项目,并且使用 celery 官方“django 的第一步”指南中的步骤安装了 celery。 celery 后端不是必需的,但您可能需要按照指南的步骤安装和配置 django-celery-results。如果您不清楚后端经纪人之间的区别,请查看我的文章“了解 celery 中的任务、经纪人、工作人员和后端”。

除非另有明确说明,所有源文档链接均适用于发布时(2024 年 7 月)当前版本的 django、celery 和 sqlalchemy。如果你在遥远的将来读到这篇文章,事情可能已经改变了。

设置 sql 代理

虽然 celery 管理任务和队列,但它委托给另一个名为 kombu 的库来与代理交换消息。 rabbitmq 和 redis 是 kombu 功能最齐全的传输(代理),但它还具有适用于 amazon sqs、zookeeper 和 mongodb 的虚拟传输。

隐藏在 kombu 文档的最角落里的是一个支持 postgresql、mysql 和 sqlite 的 sqlalchemy 传输模型。曾几何时,sqlalchemy 代理甚至在 celery 的网站上有记录,但此后它已从库的新版本的文档中删除。尽管如此,它仍然足以满足当地的发展。

要在 django 应用程序中使用后续数据库作为 celery 代理,请首先安装 sqlalchemy:

pip install sqlalchemy

在 django 项目的 settings.py 文件中,您可以使用 celery_broker_url 设置来设置代理的后端:

# base_dir is the directory of your project's main directory.celery_broker_url = f"sqlalchemy+sqlite:////{base_dir}/broker.sqlite3"

sqlalchemy 经纪人 url 由 3 部分组成:

字符串 sqlalchemy 或 sqla (它们可以互换)a+号一个 sqlalchemy 连接字符串

mac/unix 和 windows 上的 sqlite 连接字符串是不同的:

# macos/unixcelery_broker_url = "sqla+sqlite:////your/project/path/broker.sqlite3"# windowscelery_broker_url = "sqla+sqlite:///c:yourprojectpathbroker.sqlite3"

您还可以使用 postgres 作为 celery 代理,或者您也可以轻松使用 mysql 作为 celery 代理:

# mysqlcelery_broker_url = "sqlalchemy+mysql://scott:tiger@localhost/foo"# postgresqlcelery_broker_url = "sqla+postgresql://scott:tiger@localhost/mydatabase"# posgresql connecting using pg8000celery_broker_url = "sqla+postgresql+pg8000://scott:tiger@localhost/mydatabase"

您可能需要安装其他库来连接 mysql 或 postgresql,您安装的库可能会影响 sqlalchemy 连接字符串。检查 sqlalchemy 数据库 url 文档以获取更多详细信息。

无论您选择哪个数据库,您都可能需要考虑将代理 url 存储在环境变量中,以便在不同环境中轻松更改:

CELERY_BROKER_URL = os.getenv("CELERY_BROKER_URL")

一句警告

sqlalchemy 传输可能被认为是实验性的,因此它不适合生产使用。可能会发生数据丢失,或者消息可能会被多次传送。考虑切换到 celery 的经纪商和后端页面上列出的更强大的经纪商。

也就是说,这对于本地开发,甚至小型副项目来说可能没问题。但如果将来无法使用 sqlalchemy 作为代理,我也不会感到震惊。

下一步

在本地运行 celery 后,您就可以开始开发队列驱动的应用程序了。然而,您可能会发现它缺乏自动重新加载是一个摩擦点。如果您想在 django 应用程序中设置自动 celery 重新加载,请阅读我的文章“使用自定义 django 命令自动重新加载 celery 工作线程。”

以上就是在 Django 中使用 SQLite 作为 Celery 代理的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1348182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月13日 11:48:15
下一篇 2025年12月8日 10:01:23

相关推荐

  • 用python需要什么配置电脑

    学习或使用 Python 的电脑配置要求如下:处理器:最低 i3 或锐龙 3,推荐 i5 或锐龙 5;内存:最低 4GB,推荐 8GB 或以上;存储空间:最低 128GB SSD,推荐 256GB SSD或以上;显卡:集成显卡即可,高性能计算需独立显卡;操作系统:Windows、macOS 或 Ub…

    2025年12月13日
    000
  • python需要购买软件吗

    否,Python 不需要购买软件。它是开源且免费的,你可以从官方网站或包管理器下载和安装。 Python 需要购买软件吗? 否,Python 是一款开源且免费的编程语言,无需购买任何软件。 详细说明: Python 是由非营利性组织 Python Software Foundation 开发和维护的…

    2025年12月13日
    000
  • python需要什么样的电脑

    对于 Python 开发,选择一款高性能电脑至关重要,该电脑应配备多核处理器(如 Intel Core i5 或更高)、至少 8GB 内存(对于大型项目或数据密集型应用程序可能需要 16GB 或更多)、固态硬盘主存储和稳定的操作系统。其他考虑因素还包括显示器、键盘和鼠标以及网络连接。 什么样的电脑适…

    2025年12月13日
    000
  • 如何使用 Python 创建简单的 URL 缩短工具

    url 缩短工具允许用户将长 url 转换为更短、更易于管理的链接。我们可以使用 python 和 flask(一个轻量级 web 框架)构建该工具的简单版本。 先决条件 开始之前,请确保您具备以下条件: 您的系统上已安装python(推荐python 3.6+)。flask 安装完毕。您可以使用 …

    2025年12月13日
    000
  • 如何使用 Python 和 OpenAI API 创建基本的文章写作工具

    使用 python 和 openai api 创建文章写作工具涉及几个步骤。 我们将设置您的环境,安装必要的库,并编写代码来生成文章。 先决条件 开始之前,请确保您具备以下条件: 您的系统上已安装python(推荐python 3.6+)。openai api 密钥。您可以通过在 openai 网站…

    2025年12月13日
    000
  • Python:从初学者到专业人士第 4 部分

    文件处理:学习读取和写入文件 文件处理对于任何程序员来说都是一项至关重要的技能。每个开发人员都应该能够访问外部来源的数据并与之交互,并实现计算和存储。 文件用于在磁盘上存储数据。它们可以包含文本、数字或二进制数据。在 python 中,我们使用内置函数和方法来处理文件。 要打开文件,我们使用 ope…

    2025年12月13日 好文分享
    000
  • 使用Python高效读取数百万行SQL数据

    在 sql 中处理大型数据集可能具有挑战性,尤其是当您需要高效读取数百万行时。这是使用 python 处理此问题的简单方法,确保您的数据处理保持高性能和可管理性。 解决了端到端大数据和数据科学项目 使用高效的数据库驱动程序 python 有多个数据库驱动程序,例如用于 postgresql 的 ps…

    2025年12月13日
    000
  • Kaniyam 的 Python 入门课程

    Python简介及其用法如何在 Windows、Linux 和 MacOS 中安装 python如何提出问题使用谷歌搜索连接在线论坛 – https://forums.tamillinuxcommunity.org/班级聊天 – Whatsapp 频道/班级频道如何查看pyt…

    2025年12月13日
    000
  • pycharm怎么配置解释器

    PyCharm解释器的配置过程如下:安装Python解释器,推荐使用Python 3.x版本。打开PyCharm并新建一个项目。设置项目解释器,选择已安装的Python解释器。将添加的解释器设为默认解释器。 PyCharm 配置解释器 配置 PyCharm 解释器对于 Python 开发至关重要。通…

    2025年12月13日
    000
  • import os在python中的意思

    import os 语句在 Python 中用于导入 os 模块,该模块提供与底层操作系统交互的功能。功能包括:访问和操作文件系统对象控制进程和任务获取操作系统和硬件信息提供便携接口 import os 在 Python 中的含义 在 Python 中,import os 语句用于导入 os 模块,…

    2025年12月13日
    000
  • python中plist什么意思

    plistlib 模块提供编写和读取 plist(Property List)文件所需的功能。通过 plistlib.load() 读入 plist 文件后,可访问嵌套数据,或通过 plistlib.dumps() 创建新 plist 文件。 Python 中的 plist plist(Proper…

    2025年12月13日
    000
  • python数据库是什么意思

    Python 数据库是使用 Python 连接和操作各种数据库的软件工具。使用 Python 数据库通常涉及安装驱动程序、创建连接、执行查询、获取结果和关闭连接。它易于使用、灵活、高效且可移植。常见的 Python 数据库库包括 MySQLdb、psycopg2、cx_Oracle 和 pymong…

    2025年12月13日
    000
  • python idle是什么意思

    Python IDLE 是一个为 Python 编程语言设计的集成开发环境,它提供以下功能:交互式提示符:直接键入 Python 代码并立即获得结果。代码编辑器:带语法高亮和缩进的文本编辑器,用于编写和编辑 Python 代码。调试器:用于逐步执行代码、设置断点和检查变量。 Python IDLE …

    2025年12月13日
    000
  • python installer什么意思

    Python Installer 是用于打包和分发 Python 应用程序的工具,将应用程序及其依赖项打包到单个可执行文件中,简化部署、实现跨平台分发、隐藏源代码并减少依赖关系问题,通过编译应用程序文件、打包依赖项和创建启动器脚本来创建可执行文件,具有易用性、跨平台支持、依赖性管理和源代码隐藏等优点…

    2025年12月13日
    000
  • python的row是什么意思

    在 Python 中,row 表示数据表中的一行数据,它是一个列表或元组,其中存储了表的每一列的值。row 可用于遍历和访问表中的数据、提取特定列的值、修改表中的数据以及插入和删除表中的数据。通过 cursor.fetchone()、cursor.fetchmany(n) 和 cursor.fetc…

    2025年12月13日
    000
  • python中spyder是什么意思

    Spyder是用于Python编程的集成开发环境(IDE),专为数据科学研究人员设计。其核心功能包括交互式命令行、代码编辑器、变量浏览器、IPython集成和版本控制集成。它适用于Windows、macOS和Linux,支持跨平台使用。该IDE以其用户友好性、可扩展性和广泛应用于数据科学和机器学习领…

    2025年12月13日
    000
  • python爬虫404什么意思

    Python 爬虫中的 404 错误表示服务器无法找到请求的页面,可能是由于 URL 输入错误、页面移动/删除、服务器不可用或 IP 被阻止。为了解决此问题,建议验证 URL、检查页面状态、检查服务器状态、尊重爬取限制和处理 404 错误。 404 错误在 Python 爬虫中的含义 当使用 Pyt…

    2025年12月13日
    000
  • python是什么意思怎样读

    Python 是一种高级、解释性的编程语言,具有高层性、易于学习、动态类型、跨平台等特点,广泛应用于 Web 开发、数据科学、机器学习和自动化等领域,读音为 “PAI-thon”。 Python 是什么 Python 是一种高级、解释性的编程语言,具有以下特点: 高层性:Py…

    2025年12月13日
    000
  • python和数据库怎么连接

    Python 提供连接和操作数据库的能力,以下是步骤:导入数据库连接模块(如 pymysql 或 psycopg2)。创建连接对象,指定主机、用户名、密码和数据库名称。创建游标对象,用于执行查询和获取结果。使用连接对象执行查询、获取结果和关闭连接。 Python 连接数据库 Python 是一种强大…

    2025年12月13日
    000
  • python怎么安装pip解释器

    pip 解释器的安装步骤为:1. 确保已安装 Python;2. 下载 get-pip.py 脚本;3. 运行 get-pip.py;4. 验证安装;5. 更新 pip。 如何安装 pip 解释器 pip 是 Python 包管理系统,用于安装和管理 Python 包。以下是在 Python 环境中…

    2025年12月13日
    000

发表回复

登录后才能评论
关注微信