【问题标题】:Can celery celerybeat use a Database Scheduler without Django?celery celerybeat 可以在没有 Django 的情况下使用数据库调度程序吗?
【发布时间】:2023-03-10 06:20:01
【问题描述】:

我有一个包含 Django 的小型基础架构计划。但是,由于我使用 Django 的经验,我真的很喜欢 Celery。我真正需要的是 Redis + Celery 来制作我的项目。我不想使用本地文件系统,而是将所有内容都保存在 Redis 中。我当前的架构对所有内容都使用 Redis,直到它准备好将结果转储到 AWS S3。诚然,我没有充分的理由使用 Redis 而不是文件系统。我刚刚在考虑到 Docker 和可扩展性的情况下投入了大量资金来构建它,不这样做感觉不对。

【问题讨论】:

    标签: python redis celery celerybeat


    【解决方案1】:

    前段时间我也在搜索非 Django 数据库调度程序,但看起来没有别的了。所以我把Django scheduler code 修改为使用SQLAlchemy。改用 Redis 应该更容易。

    【讨论】:

    • 您的解决方案是否足够通用,可能对其他人有用?看来我必须为我们的 Pyramids/SQLAlchemy 系统做同样的事情。
    • 推送到github。希望它有所帮助:)
    • 哇,谢谢!即使没有帮助,我也感谢您的回复!
    • 我确实想通了。感谢您花时间分享这个。它激励我回来并在答案中分享我自己的发现。我看到我们有几票,所以很高兴知道它帮助了整个社区。​​span>
    【解决方案2】:

    原来你可以!

    首先我从tutorial on celeryproject.org 创建了this little project

    这太棒了,所以 I built a Dockerized demo 作为概念证明。

    我从这个项目中学到的东西

    • 码头工人

      • 使用 --link 在容器之间创建网络连接
      • 在容器内运行命令
    • Dockerfile

      • 使用 FROM 迭代构建映像
      • 使用官方图片
      • 对“正常工作”的图像使用 CMD
    • 芹菜

      • 在没有 Django 的情况下使用 Celery
      • 在没有 Django 的情况下使用 Celerybeat
      • 使用 Redis 作为队列代理
      • 项目布局
      • 任务命名要求
    • Python

      • setuptools/setup.py 的正确项目布局
      • 通过 pip 安装项目
      • 使用 entry_points 使 console_scripts 可访问
      • 使用 setuid 和 setgid 降低 celery 守护进程的权限

    【讨论】:

      猜你喜欢
      • 2019-09-08
      • 2017-06-22
      • 1970-01-01
      • 2013-05-18
      • 1970-01-01
      • 2016-08-27
      • 1970-01-01
      • 2016-08-11
      • 2013-09-29
      相关资源
      最近更新 更多