使用supervisor后台运行celery

本地使用celery测试的时候我们可以直接在不同的终端直接运行 Celery 进程,但是如果要在服务器上运行,那我们岂不是得开好几个终端?而且退出终端之后 Celery 进程也就停止了,能不能让 Celery 在后台以守护进程的方式运行呢?答案是肯定的,今天我们先介绍用 supervisor 使celery在后台运行

一、先安装supervisor

1、安装命令:

pip install supervisor

如果在沙盒环境下安装不上的话使用: …

Django项目中使用Celery

Celery是Python开发分布式任务列队的处理库。可以异步分布式地异步处理任务,也可定时执行任务等等。通常我们可以在Django执行一些比较耗时的任务(例如批量发邮件)和后台定时任务等。

研究发现,在Django中使用celery有两种方式:

  1. 使用django-celery应用;
  2. 直接使用Celery。

我们这里选择的是第二种方案。

1. Celery中间人的选择

官方给出的broker列表如下

Name Status Monitoring Remote Control
RabbitMQ Stable …

Ubuntu下Redis安装和常用操作

以下安装操作是在Ubuntu16.04系统下完成,其他发行版本或者类Unix系统可能稍有不同。(Redis有编号0~15共16个数据库。)

一、Redis基础知识介绍

redis是Key Value nosql数据库,数据存储在内存中,单进程,自己实现了一套异步事件处理,虽然单进程但是数据库处理很快,异步持久化。

1. Redis有5种数据类型:
  • string,最基本的数据类型,也是其他四种数据类型的基础,能存储任何形式的字符创。适用:存储信息对象序列化JSON格式。get/set操作。
  • hash,哈希类型是一个字符串类型的字段和字段值的映射表,将一个对象存成hash类型占用更少的内存,并且可以更方便的存取整个对象。适用:经常被并发请求的小数据查询,如:最近五日的超高返商品数据,存储在Hash中,field=商品ID,value=商品信息(对象序列化JSON格式)。hmset/hgetall操作。
  • list,链表类型可以存储一个有序的字符串列表,用链表类型的LPUSH和LPOP或者RPUSH和RPOP实现栈的功能,用LPUSH和RPOP或者RPUSH和LPOP实现队列的功能。适用:作为信息队列使用,不断的Lpush数据到List中,rpop数据出来入库,或者处理。列表的最大长度为 232 - 1 个元素(4294967295,每个列表的元素超过四十亿)。lpush list_name …

  • 1