django 2.x + celery 4.2.x 配置文件 设置

django 2.x + celery 4.2.x配置

模块

celery==4.2.1
django-celery-beat==1.1.1
django-celery-results==1.0.1
kombu==4.2.1

配置

__init__.py

from __future__ import absolute_import, unicode_literals

from .celery import app as celery_app

__all__ = [‘celery_app‘]
celery.py

from __future__ import absolute_import, unicode_literals
import os
from celery.schedules import crontab
from datetime import timedelta
from celery import Celery, platforms

os.environ.setdefault(‘DJANGO_SETTINGS_MODULE‘, ‘xxxxxx.settings‘)

app = Celery(‘xxxxxxxx‘)
app.config_from_object(‘django.conf:settings‘, namespace=‘CELERY‘)
app.autodiscover_tasks()
platforms.C_FORCE_ROOT = True

@app.task(bind=True)
def debug_task(self):
    print(‘Request: {0!r}‘.format(self.request))

app.conf.update(
    CELERYBEAT_SCHEDULE={
        ‘city‘: {
            ‘task‘: ‘city.tasks.city_task‘,
            ‘schedule‘: timedelta(hours=1),
            ‘args‘: ‘‘
        },
    }
)
settings.py

INSTALLED_APPS = [
    ‘django_celery_results‘,
    ‘django_celery_beat‘,
]

TIME_ZONE = ‘Asia/Shanghai‘

USE_I18N = True
USE_L10N = False  # 注意是False 配合下边时间格式
USE_TZ = False     # 如果只是内部使用的系统,这行建议为false,不然会有时区问题
DATETIME_FORMAT = ‘Y-m-d H:i:s‘
DATE_FORMAT = ‘Y-m-d‘

CELERY_RESULT_BACKEND = ‘redis://localhost:6379/1‘
# CELERY_RESULT_BACKEND = ‘django-db‘
CELERY_BROKER_URL = ‘redis://localhost:6379/0‘
CELERYBEAT_SCHEDULER = ‘django_celery_beat.schedulers:DatabaseScheduler‘
CELERYD_CONCURRENCY = 20
CELERY_TIMEZONE = ‘Asia/Shanghai‘
CELERYD_MAX_TASKS_PER_CHILD = 30
CELERYD_FORCE_EXECV = True
CELERY_IGNORE_RESULT = True
CELERY_CREATE_MISSING_QUEUES = True
CELERYD_TASK_SOFT_TIME_LIMIT = 1200
CELERY_TASK_RESULT_EXPIRES = 1200

任务

city/
        tasks.py

import logging
import json
import os
import configparser
import string
from celery import shared_task
import datetime

logger = logging.getLogger(‘celery‘)

@shared_task
def city_task():
        pass

生成表结构,启动redis

启动

celery -B   -A  argus  worker  -l  info

原文地址:http://blog.51cto.com/hequan/2323058

时间: 2024-11-10 14:04:29

django 2.x + celery 4.2.x 配置文件 设置的相关文章

Django 中使用 Celery

起步 在 <分布式任务队列Celery使用说明> 中介绍了在 Python 中使用 Celery 来实验异步任务和定时任务功能.本文介绍如何在 Django 中使用 Celery. 安装 pip install django-celery 这个命令使用的依赖是 Celery 3.x 的版本,所以会把我之前安装的 4.x 卸载,不过对功能上并没有什么影响.我们也完全可以仅用Celery在django中使用,但使用 django-celery 模块能更好的管理 celery. 使用 可以把有关 C

Django中使用Celery实现定时任务(用djcelery)

[TOC] 一.引言 Django是python语言下的一个比较热门的Web框架,越来越多的企业和开发者使用Django实现自己的Web服务器.在Web服务器开发过程中,有时候我们不仅仅是要实现Web服务器端和用户端的简单逻辑交互,还要实现一些定时任务.举出以下的例子: 定期删除或缓存Redis数据库的记录 为了追求更高的数据库访问性能,我把Redis作为MySql数据库的缓存.把常访问的数据放在Redis中,然后定时存储到Mysql中.并且把过期的Redis数据删掉.那么这个时候,就需要定时去

nginx 流媒体 flv 播放 以及上传大小 配置文件设置

nginx 流媒体 flv 播放 以及上传大小 配置文件设置 server {listen 80;server_name localhost;root /www/web/default;index index.php index.html index.htm;client_max_body_size 2670m; limit_rate_after 1m; ####在flv视频文件下载了5M以后开始限速limit_rate 20k; ####速度限制为512K location ~ \.php$

ansible 配置文件设置

目录 ansible 配置文件设置 一.ansible configuration settings 二.ansible 配置文件查找顺序(从上到下,依次查找) 三.附录ansible配置参数 ansible 配置文件设置 一.ansible configuration settings ansible支持多种形式,对它进行配置,其中包括命令行配置.配置文件配置(ansible.cfg).直接修改linux环境变量.以及playbook中使用变量去修改ansible配置.总共4种表现形式. 二.

Django 1.9 + celery + django-celry 实现定时任务

celery可以进行任务异步处理,celery还有一种Celery的常用模式便是执行定期任务. 执行定期任务时, Celery会通过celerybeat进程来完成. Celerybeat会保持运行, 一旦到了某一定期任务需要执行时, Celerybeat便将其加入到queue中. 配置 那么我们如何让他和django搭配着使用呢 其实很简单拿一个项目来说吧 项目介绍 celery==3.1.23 Django==1.9 django-celery==3.1.17 flower==0.9.2 请严

django中使用celery发送邮件

1.安装两个包:celery, django-celery pip install celery==3.1.25 pip install django-celery==3.1.17 2.配置 项目目录/项目名目录/settings.py 1.将celery添加到注册应用中 INSTALLED_APPS = ( ......, 'djcelery', ...... ) 2.配置celery import djcelery djcelery.setup_loader()  # 去每一个应用目录下找

Django中使用Celery,定制应用程序中定义的shared_task未在定期任务管理页面的注册任务中显示

解决办法: 在项目 proj/proj/celery.py文件中,看到下面这行配置: celery_app.config_from_object('django.conf:settings', namespace='CELERY') 修改成下面所示结果: celery_app.config_from_object(settings, namespace='CELERY') 除此之外,还需要在proj/proj/celery.py文件头部引入settings配置: from django.conf

为django项目配置celery的后台启动

为root用户启动celery创建的脚本,该脚本的拥有者与使用者都必须是root .使用方法为 /etc/init.d/celeryd [start]|[stop]|[kill] 需增加两个文件 /etc/default/celeryd(配置脚本) 和 /etc/init.d/celeryd (启动脚本) 1.编辑 /etc/default/celeryd : # Names of nodes to start # most people will only start one node: CE

django中使用celery

创建django项目celery_demo, 创建应用demo: django-admin startproject celery_demo python manage.py startapp demo #celery.pyfrom celery import Celery from django.conf import settings import os # 为celery设置环境变量 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'cele