django-celery定时任务

django-celery定时任务

安装库文件

pip install celery
pip install django-celery

修改配置文件

settings.py

import djcelery

djcelery.setup_loader()
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'  #定时任务需要

BROKER_URL = "redis://10.10.10.118:6379/10"  #使用django自带的写为  BROKER_URL = 'django://'
CELERYD_MAX_TASKS_PER_CHILD = 10
CELERYD_CONCURRENCY = 5
CELERY_RESULT_DB_SHORT_LIVED_SESSIONS = True
CELERY_TIMEZONE = 'Asia/Shanghai'   #时区,也可是使用django的时区 CELERY_TIMEZONE = TIME_ZONE

INSTALLED_APPS = (
    'djcelery',
)

编写superfun/celery.py文件——–不写应该也可以—–picha是工程名—-文件与settings.py在同一级目录

# coding: utf-8

from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings

# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'picha.settings')
app = Celery('picha')

# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)


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

编写superfun/init.py——————-不写也行—-文件与settings.py在同一级目录

# coding: utf-8

from __future__ import absolute_import

# This will make sure the app is always imported when
# Django starts so that shared_task will use this app.
from .celery import app as celery_app

编写任务文件–feed/tasks.py——-feed是django的app名

from __future__ import absolute_import
from celery import shared_task,task

@shared_task()
def add(x,y):
    # return x + y
    print x + y

或
@task
def send_push():
    sended_tid = get_sended_tid()
    tid, body = get_send_id(sended_tid,1)
    ret, task_id, error_code= pushmessage.sendIOSUnicast(tid, body)
    set_sended_id(tid, ret, task_id, error_code)
    return "result:",tid,ret, task_id, error_code   

django管理页面

http://10.10.10.122:11111/admin/djcelery

定时任务后台进程
python manage.py celery worker -c 6 -l debug
python manage.py celery beat

python manage.py celery --settings=superfun.settings-prod beat
python manage.py celery worker --loglevel=info
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值