分类目录归档:爬虫

用celery构建分布式框架

网上的关于这个框架的使用,我觉得都过于的复杂,我用一个比较简单通俗易懂的方式,来说下这个框架包含的一些知识点.

一, 创建一个项目目录,结构如下:

在 celery 中,配置 celery 的一些相关信息,比如这样:

import time
from celery import Celery

broker = 'redis://localhost:6379/6'
backend = 'redis://localhost:6379/7'
cel = Celery('celery_demo',
             broker=broker,
             backend=backend,
             # 导入任务函数
             include=['celerytask.tasks1',
                    'celerytask.tasks2',
                      ])
# 时区
cel.conf.timezone = 'Asia/Shanghai'
# 是否使用UTC
cel.conf.enable_utc = False

task1.py 和 taks2.py 就是任务函数,让他们使用定时任务也很简单,就是引入这个实例,然后用装饰器绑定一些即可,代码如下: ( 这边是两个 task )

import time
from celerytask.celery import cel

@cel.task
def test_celery(res):
time.sleep(5)
return "test_celery任务结果:%s"%res

二,启动任务以及发送任务

很简单 在项目目录下 直接: celery worker -A celerytask -l info

celerytask里面的要好好体会一下要设置对

然后发送任务就这样:

from celerytask.tasks1 import test_celery
from celerytask.tasks2 import test_celery2

# 立即告知celery去执行test_celery任务,并传入一个参数
result = test_celery.delay('第一个的执行')
print(result.id)
result = test_celery2.delay('第二个的执行')
print(result.id)
  1. 引入任务函数
  2. 用 delay 来执行任务函数

三,简单的总结一下

1, 创建任务文件夹 ( 以后这可以当做 app 的方式 )
2, 写好配置文件,以及 task文件
3, 引入 task 文件 然后开始执行