docker容器内的django启动celery任务队列

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

问题1:

celery任务队列一般要使用redis,但是容器内的django要访问本机的redis是十分麻烦的

解决2:

在容器内安装redis,或者单独启动一个redis的容器,我是单独启动一个redis容器

  • 安装redis镜像docker pull redis
  • 启动redis容器docker run -d --name redis_container redis
  • 查看redis的IP `docker inspect -f “{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}” redis_container
  • 我的redis容器IP是172.17.0.2,在django中配置redis
setting.py
# Redis 缓存配置
CACHES = {
    'default': {
        'BACKEND': 'django_redis.cache.RedisCache',
        'LOCATION': 'redis://172.17.0.2:6379/0',  # Redis 服务器连接信息
        # 'LOCATION': 'redis://:1234qwer@127.0.0.1:6379/0',  # Redis 服务器连接信息
        'OPTIONS': {
            'CLIENT_CLASS': 'django_redis.client.DefaultClient',
        }
    }
}

# 使用 Redis 缓存作为默认缓存后端
CACHE_BACKEND = 'django_redis.cache.RedisCache'

celery.py
# 设置 Redis 作为任务队列和结果后端
app.conf.broker_url = 'redis://172.17.0.2:6379/5'
app.conf.result_backend = 'redis://172.17.0.2:6379/4'

目前redis可以正常访问,我的redis缓存使用正常

问题2:

如何启动容器内的celery任务队列

解决2:

试过很多方法,包括在Dockerfile中启动一个.sh文件(同时有启动django和任务队列的命令,Dockerfile只能写一个cmd命令)但是效果都不好,最终的方法是在根目录创建.sh文件,使用docker命令行访问这个文件文章来源地址https://www.toymoban.com/news/detail-626222.html

  • 在django根目录下创建start_celery.sh
  • 在.sh文件写入命令行
#!/bin/bash

celery -A RemoteCut worker -l info -P eventlet
  • Dockerfile中设置
  • 在这里插入代码片
 # 设置工作目录
WORKDIR /remote_cut

# 复制项目文件到容器中
COPY . /remote_cut

COPY ./RemoteCut/settings.py /remote_cut/RemoteCut/

COPY ./start_celery.sh /remote_cut/
  • 命令行启动任务队列
docker exec -it 容器名称或者容器id /remote_cut/start_celery.sh

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

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

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

相关文章

  • Django+Celery框架自动化定时任务开发

    本章介绍使用DjCelery即Django+Celery框架开发定时任务功能,在Autotestplat平台上实现单一接口自动化测试脚本、业务场景接口自动化测试脚本、App自动化测试脚本、Web自动化测试脚本等任务的定时执行、调度、管理等,从而取代Jenkins上的定时执行脚本和发送邮件等功能。** 自动化

    2024年04月15日
    浏览(47)
  • celery分布式异步任务队列-4.4.7

    version 4.4.7 学习总结 python实现、开源、遵循BSD许可的分布式任务队列; 可以处理大量消息,简单、灵活、可靠的分布式系统,专注任务的 实时处理 和 定时调度 处理; 它是线程、进程分配任务的一种机制,官方仅做支持linux开发。 五大部分: task,任务 beat,定时调度管理器

    2024年02月07日
    浏览(46)
  • 软件测试 | 测试开发 | Django+Celery框架自动化定时任务开发

    ** 本章介绍使用DjCelery即Django+Celery框架开发定时任务功能,在Autotestplat平台上实现单一接口自动化测试脚本、业务场景接口自动化测试脚本、App自动化测试脚本、Web自动化测试脚本等任务的定时执行、调度、管理等,从而取代Jenkins上的定时执行脚本和发送邮件等功能。** 自动

    2023年04月08日
    浏览(56)
  • 【Docker】如何在设计 dockerfile 过程中,设置容器启动后的定时任务

    jwensh @2023.08.14 在设计 Dockerfile 过程中,可以通过以下步骤设置容器启动后的定时任务: 在 Dockerfile 中选择一个合适的基础镜像。根据你的要求,你可以选择 Alpine Linux 作为基础镜像,它是一个轻量级的 Linux 发行版。 在 Dockerfile 中安装 cron 工具。cron 是一个常用的定时任务管

    2024年02月06日
    浏览(51)
  • 容器内的服务和docker 映射的服务

    容器内的服务 容器内的服务指的是在Docker容器中运行的应用程序或进程。这些服务可以是Web服务器、数据库、API服务、后台任务等任何类型的软件服务。容器为这些服务提供了一个隔离的运行环境,其中包含所需的依赖项、库和配置,确保服务在一致的环境中运行。 工作原

    2024年04月27日
    浏览(21)
  • 让Docker容器内的服务能够访问宿主机上的其他容器的端口,可以使用Docker的网络功能

    要让Docker容器内的服务能够访问宿主机上的其他容器的端口,可以使用Docker的网络功能。 Docker提供了多种网络驱动程序,例如 bridge 、 host 、 overlay 等。其中, bridge 是默认的网络驱动程序,它会在每个Docker容器内创建一个虚拟的网卡,同时会为每个容器分配一个独立的IP地址

    2024年02月14日
    浏览(39)
  • 如何在Django中使用django-crontab启动定时任务、关闭任务以及关闭指定任务

    安装django-crontab包: 在Django项目的settings.py文件中,找到INSTALLED_APPS配置,并添加\\\'django_crontab\\\'到列表中: 在settings.py文件的末尾,添加以下配置以设置定时任务的时间间隔: 假设我们有一个名为myapp的应用,其中定义了task1、task2和task3三个定时任务。具体参数设置看这里 在终端中

    2024年02月09日
    浏览(48)
  • 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日
    浏览(47)
  • celery笔记四之在Django中使用celery

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

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

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

    2024年02月22日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包