celery

鱼仔系统部署教程

允我心安 提交于 2019-12-30 05:09:47
下载地址: https://github.com/qingduyu/roe 1. 基本需求 1.1 系统推荐配置 生产建议使用:8核以上(python相当消耗cpu),16G以上内存 (数据传输很大的),磁盘 350G 以上 测试建议使用:cpu 4核以上,ram 8G以上,disk 50G以上 1.2 基础软件需求 python2.7 (自编译), mysql 5.6以上(暂时不做安装教程指导) , redis (暂时本机单机版,不做教程,不设密码) 1.3 yum 安装的软件 yum install epel-release yum install sshpass nmap supervisor 1.4.本机的ssh-key生成 ssh-keygen 一路回车 2. python 2.7 的虚拟环境(还是决定添加) 2.1 编译2.7 编译前的依赖安装 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make 自己下载2.7.15 进行编译 cd Python-2.7.15 ./configure --prefix=/usr/local/python2.7 make -j 4 make install 安装pip

Why are celery_taskmeta and other tables not being created when running a syncdb in django?

天涯浪子 提交于 2019-12-30 02:11:49
问题 I'm trying to setup celery and django, but the celery_taskmeta table is not being created. I've followed numerous (Recent) tutorials, added djcelery and djkombu to my installed_apps. added the 'BROKER_TRANSPORT = "djkombu.transport.DatabaseTransport"' line to my settings, etc. I can run the daemon just fine, and it will execute tasks, but it spits out this traceback at the end: ============== 2011-08-05 16:21:16,231: ERROR/MainProcess] Task slate.modules.filebrowser.tasks.gen_thumb_task

Celery 全面学习笔记

China☆狼群 提交于 2019-12-29 23:48:23
介绍 讲师的博客: https://www.cnblogs.com/alex3714/articles/6351797.html 文档(入门的部分是中文的): http://docs.jinkan.org/docs/celery/getting-started/first-steps-with-celery.html#first-steps 网上更多资料: https://blog.csdn.net/freeking101/article/details/74707619 Celery 是 Distributed Task Queue,分布式任务队列。分布式决定了可以有多个 worker 的存在,队列表示其是异步操作。 Celery 核心模块 Celery有一下5个核心角色 Task 就是任务,有异步任务和定时任务 Broker 中间人,接收生产者发来的消息即Task,将任务存入队列。任务的消费者是Worker。Celery本身不提供队列服务,推荐用Redis或RabbitMQ实现队列服务。 Worker 执行任务的单元,它实时监控消息队列,如果有任务就获取任务并执行它。 Beat 定时任务调度器,根据配置定时将任务发送给Broler。 Backend 用于存储任务的执行结果。 各个角色间的关系看下面这张图理解一下: 安装 Celery4.x 开始不再支持Windows平台了。3

Celery 3 版本 定时执行与 异步执行 | Django 案例

让人想犯罪 __ 提交于 2019-12-29 23:48:10
Celery介绍 Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery。 软件架构 Django案例 环境 * python3.6.4 * django 2.0 * django-celery==3.2.1 * django-kombu==0.9.4 * celery-with-redis==3.0 * celery==3.1.25 目录结构 autoops/ autoops/settings tasks/tasks.py settings import djcelery INSTALLED_APPS = [ 'djcelery', 'kombu', ] djcelery.setup_loader() BROKER_URL = 'redis://127.0.0.1:6379/0' #消息存储数据存储在仓库0 CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend' # 指定 Backend CELERY_ACCEPT_CONTENT = ['application/json'] CELERY_TASK_SERIALIZER = 'json' CELERY_RESULT_SERIALIZER

AirFlow 常见问题

我的未来我决定 提交于 2019-12-29 23:11:40
@[toc] AirFlow 常见问题 安装问题 1、安装出现ERROR “python setup.py xxx” 。 问题: 第一需要你更新 pip 版本需要使用'pip install --upgrade pip' command. 第二是 setuptools 版本太旧,所以出现以下问题Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-G9yO9Z/tldr/,也是需要你更新 File "/tmp/pip-build-G9yO9Z/tldr/setuptools_scm-3.3.3-py2.7.egg/setuptools_scm/integration.py", line 9, in version_keyword File "/tmp/pip-build-G9yO9Z/tldr/setuptools_scm-3.3.3-py2.7.egg/setuptools_scm/version.py", line 66, in _warn_if_setuptools_outdated setuptools_scm.version.SetuptoolsOutdatedWarning: your setuptools is too old (<12) --------------

celery task and customize decorator

拟墨画扇 提交于 2019-12-28 05:51:46
问题 I'm working on a project using django and celery(django-celery). Our team decided to wrap all data access code within (app-name)/manager.py (NOT wrap into Managers like the django way), and let code in (app-name)/task.py only dealing with assemble and perform tasks with celery(so we don't have django ORM dependency in this layer). In my manager.py , I have something like this: def get_tag(tag_name): ctype = ContentType.objects.get_for_model(Photo) try: tag = Tag.objects.get(name=tag_name)

Running Scrapy spiders in a Celery task

浪子不回头ぞ 提交于 2019-12-27 18:21:32
问题 I have a Django site where a scrape happens when a user requests it, and my code kicks off a Scrapy spider standalone script in a new process. Naturally, this isn't working with an increase of users. Something like this: class StandAloneSpider(Spider): #a regular spider settings.overrides['LOG_ENABLED'] = True #more settings can be changed... crawler = CrawlerProcess( settings ) crawler.install() crawler.configure() spider = StandAloneSpider() crawler.crawl( spider ) crawler.start() I've

RabbitMq与Celery应用示意图

戏子无情 提交于 2019-12-27 01:10:48
1、RabbitMQ ((消息队列工具,在celery中扮演broker的角色,broker是消息代理,或者叫做消息中间件) 2、使用Celery (异步任务的调度工具) 简单来说,rabbitmq是一个采用Erlang写的强大的消息队列工具。在celery中可以扮演broker的角色。那么什么是broker? broker是一个消息传输的中间件,可以理解为一个邮箱。每当应用程序调用celery的异步任务的时候,会向broker传递消息,而后celery的worker将会取到消息,进行对于的程序执行。好吧,这个邮箱可以看成是一个消息队列。那么什么又是backend,通常程序发送的消息,发完就完了,可能都不知道对方时候接受了。为此,celery实现了一个backend,用于存储这些消息以及celery执行的一些消息和结果。对于 brokers,官方推荐是rabbitmq和redis,至于backend,就是数据库啦。为了简单起见,我们都用redis。 (1)celery 的架构 celery beat: 任务调度器,beat进程会读取配置文件的内容,周期性的将配置中到期需要执行的任务发送给任务队列。 celery worker: 执行任务的消费者,通常会在多台服务器运行多个消费者 来提高执行效率。 broker: 消息代理,或者叫做消息中间件,接受任务生产者发送过来的任务消息

celery 分布式异步任务框架(celery简单使用、celery多任务结构、celery定时任务、celery计划任务、celery在Django项目中使用Python脚本调用Django环境)

我是研究僧i 提交于 2019-12-26 11:58:29
一.celery简介 Celery 是一个强大的 分布式任务队列 的 异步处理框架,它可以让任务的执行完全脱离主程序,甚至可以被分配到其他主机上运行。我们通常使用它来实现异步任务(async task)和定时任务(crontab)。 Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成。 可以看到,Celery 主要包含以下几个模块: 任务模块 Task 包含异步任务和定时任务。其中,异步任务通常在业务逻辑中被触发并发往任务队列,而定时任务由 Celery Beat 进程周期性地将任务发往任务队列。 消息中间件 Broker Broker,即为任务调度队列,接收任务生产者发来的消息(即任务),将任务存入队列。Celery 本身不提供队列服务,官方推荐使用 RabbitMQ 和 Redis 等。 任务执行单元 Worker Worker 是执行任务的处理单元,它实时监控消息队列,获取队列中调度的任务,并执行它。 任务结果存储 Backend Backend 用于存储任务的执行结果,以供查询。同消息中间件一样,存储也可使用 RabbitMQ, redis 和 MongoDB 等。 所以总结一下celery:它是一个处理大量消息的分布式系统,能异步任务、定时任务

异步任务队列Celery在Django中的使用

て烟熏妆下的殇ゞ 提交于 2019-12-25 22:27:52
一、Django中的异步请求 Django Web中从一个http请求发起,到获得响应返回html页面的流程大致如下:http请求发起 -- http handling(request解析) -- url mapping(url正则匹配找到对应的View) -- 在View中进行逻辑的处理、数据计算(包括调用Model类进行数据库的增删改查)--将数据推送到template,返回对应的template/response。 图1. Django架构总览 同步请求:所有逻辑处理、数据计算任务在View中处理完毕后返回response。在View处理任务时用户处于等待状态,直到页面返回结果。 异步请求:View中先返回response,再在后台处理任务。用户无需等待,可以继续浏览网站。当任务处理完成时,我们可以再告知用户。 二、关于Celery   Celery是基于Python开发的一个分布式任务队列框架,支持使用任务队列的方式在分布的机器/进程/线程上执行任务调度。          图2. Celery架构   图2展示的是Celery的架构,它采用典型的生产生-消费者模式,主要由三部分组成:broker(消息队列)、workers(消费者:处理任务)、backend(存储结果)。实际应用中,用户从Web前端发起一个请求,我们只需要将请求所要处理的任务丢入任务队列broker中