Celery Beat定时任务

示例代码

创建schedule_tasks.py文件

from celery import Celery
from celery.schedules import crontab

app = Celery("SchedulerTasks", broker=‘pyamqp://admin:[email protected]:5672//‘)

@app.on_after_configure.connect
def setup_periodic_tasks(sender, **kwargs):
    # Calls test(‘hello‘) every 10 seconds.
    sender.add_periodic_task(10.0, test.s(‘hello‘), name=‘add every 10‘)

    # Calls test(‘world‘) every 30 seconds
    sender.add_periodic_task(30.0, test.s(‘world‘), expires=10)

    # Executes every Monday morning at 7:30 a.m.
    sender.add_periodic_task(
        crontab(hour=7, minute=30, day_of_week=1),
        test.s(‘Happy Mondays!‘),
    )

@app.task
def test(arg):
    print(arg)

启动Celery Beat-任务生产者

# celery -A schedule_tasks beat

启动Celery Worker-任务消费者

# celery -A schedule_tasks worker 

原文地址:https://www.cnblogs.com/vincenshen/p/12315132.html

时间: 2024-10-09 15:17:51

Celery Beat定时任务的相关文章

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

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

Celery完成定时任务

1.什么是Celery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 celery支持linux,如果windows使用celery出了问题不解决 Celery架构 Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成. 消息中间件 Celery本身不提供消息服务,但是可以方便的和第三方提供的消息中间件集成.包括,Ra

Django 项目celery beat报错:Pidfile already exists

背景 Django项目运行celery定时任务celery beat时,报错如下: 排查 经过排查,发现celerybeat运行时,会自动创建一个pidfile文件,默认为celerybeat.pid,存放在项目根目录下: 正常情况下:celerybeat停止运行时,celerybeat.pid文件会自动生成,下次运行时再自动创建. 上述问题出现的原因就是celerybeat时非正常停止运行,导致了celerybeat.pid文件没有自动删除,以至于再次运行时报错. 解决办法 手动删除celer

celery beat 之Pidfile (celerybeat.pid) already exists报错

celery beat 之Pidfile (celerybeat.pid) already exists报错 今天在django中利用celery来自动添加任务时,执行celery beat -A celery_task -l info启动一个添加任务的服务时报错:Pidfile (celerybeat.pid) already exists 报错原因 celery beat在运行时,会自动创建两个文件: pidfile:默认为celerybeat.pid,保存在项目根目录. scheduler

django+celery配置(定时任务)

下面介绍一下django+celery的配置做定时任务 1.首先介绍一下环境和版本 python==2.7 django == 1.8.1 celery == 3.1.23 django-celery == 3.1.17 2.celery的安装   sudo pip install celery==3.1.23 sudo pip install django-celery==3.1.17 3.新建一个项目 (1)django-admin startproject django_celery_de

利用celery+django 在admin后台设置定时任务

经常用python开发web应用时,会涉及到定时任务的脚本,以前用linux自带的crontab来操作,但是感觉不太接地气,后来发现用celery+django 可以方便的实现! 安装软件环境如下: python 2.7.5 Django==1.8.2 celery==3.1.18 celery-with-redis==3.0 django-celery==3.1.16 MySQL-python==1.2.3 supervisor==3.1.3 使用pip方式安装完以上软件,并且默认系统已经安装

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 admin后台配置celery定时任务

1.安装djcelery pip install django-celery 2.在Django项目setting配置 A.配置djcelery # CELERY STUFF import djcelery djcelery.setup_loader() BROKER_URL = 'redis://localhost:6379' CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler' # 定时任务 CELERY_RESULT_

44. Python Celery多实例 定时任务

celery是一个分布式的任务调度模块,那么celery是如何和分布式挂钩呢? celery可以支持多台不同的计算机执行不同的任务或者相同的任务. 如果要说celery的分布式应用的话,就要提到celery的消息路由机制,提到AMQP协议. 具体可以查看AMQP文档详细了解. 简单理解: 可以有多个"消息队列"(message Queue),不同的消息可以指定发送给不同的Message Queue, 而这是通过Exchange来实现的,发送消息到"消息队列"中时,可