当前位置: 首页 > news >正文

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命令行访问这个文件

  • 在django根目录下创建start_celery.sh
  • 在.sh文件写入命令行
#!/bin/bashcelery -A RemoteCut worker -l info -P eventlet
  • Dockerfile中设置
  • 在这里插入代码片
 # 设置工作目录
WORKDIR /remote_cut# 复制项目文件到容器中
COPY . /remote_cutCOPY ./RemoteCut/settings.py /remote_cut/RemoteCut/COPY ./start_celery.sh /remote_cut/
  • 命令行启动任务队列
docker exec -it 容器名称或者容器id /remote_cut/start_celery.sh
http://www.lryc.cn/news/108929.html

相关文章:

  • linux文件描述符fd
  • 【深度学习】各个开源库总结及实战-总目录
  • Unity Shader:闪烁
  • c++开发模式桥接模式
  • javaScript 树形结构 递归查询方法。
  • MySQL语法2
  • Mysql on duplicate key update用法及优缺点
  • 【Linux】-进程概念之进程优先级(如何去进行调度以及进程切换),还不进来看看??
  • 《在细雨中呼喊》阅读笔记
  • 01-1 搭建 pytorch 虚拟环境
  • RocketMQ 事务消息
  • Windows安装ElasticSearch
  • 【深度学习】SMILEtrack: SiMIlarity LEarning for Multiple Object Tracking,论文
  • 【Kubernetes】Kubernetes之二进制部署
  • 京东开源的、高效的企业级表格可视化搭建解决方案:DripTable
  • STL C++学习背景
  • C#踩坑:谨慎在XML数据列上绑定鼠标事件!
  • 逻辑代数运算
  • win10笔记本显示器根据页面显示亮度自动调节亮度的问题
  • 无人驾驶实战-第一课(自动驾驶概述)
  • 15.节点操作
  • C语言自定义类型 — 结构体、位段、枚举、联合
  • 新手指南:流程图中各种图形的含义及用法解析
  • 【知识产权】专利的弊端
  • 用Rust实现23种设计模式之抽象工厂
  • 31.利用linprog 解决 投资问题(matlab程序)
  • 整数线性规划求解工具isl使用方法
  • SystemC的调度器
  • SpringBoot、SpringCloud 版本查看
  • AI Chat 设计模式:12. 享元模式