celery在python爬虫中定时操作实例讲解


Posted in Python onNovember 27, 2020

使用定时功能对于我们想要快速获取某个数据来说,是一个非常好的方法。这样我们就不用苦苦守在电脑屏幕前,只为蹲到某个想要的东西。在之前我们已经讲过time函数进行定时操作,这算是time函数的比较基础的一个用法了。其实定时功能同样可以用celery实现,具体的方法我们往下看:

爬虫由于其特殊性,可能需要定时做增量抓取,也可能需要定时做模拟登陆,以防止cookie过期,而celery恰恰就实现了定时任务的功能。在上述基础上,我们将`tasks.py`文件改成如下内容

from celery import Celery
app = Celery('add_tasks', broker='redis:''//223.129.0.190:6379/2', backend='redis:''//223.129.0.190:6379/3')
app.conf.update(
  # 配置所在时区
  CELERY_TIMEZONE='Asia/Shanghai',
  CELERY_ENABLE_UTC=True,
  # 官网推荐消息序列化方式为json
  CELERY_ACCEPT_CONTENT=['json'],
  CELERY_TASK_SERIALIZER='json',
  CELERY_RESULT_SERIALIZER='json',
  # 配置定时任务
  CELERYBEAT_SCHEDULE={
    'my_task': {
      'task': 'tasks.add', # tasks.py模块下的add方法
      'schedule': 60,   # 每隔60运行一次
      'args': (23, 12),
    }
  }
)
@app.task
def add(x, y):
return x + y

然后先通过`ctrl+c`停掉前一个worker,因为我们代码改了,需要重启worker才会生效。我们再次以`celery -A tasks worker -l info`这个命令开启worker。

这个时候我们只是开启了worker,如果要让worker执行任务,那么还需要通过beat给它定时发送,我们再开一个命令行,切换到项目根目录,通过

celery beat -A tasks -l info

celery beat v3.1.25 (Cipater) is starting. 

__ - ... __ - _

Configuration ->
. broker -> redis://223.129.0.190:6379/2
. loader -> celery.loaders.app.AppLoader
. scheduler -> celery.beat.PersistentScheduler
. db -> celerybeat-schedule
. logfile -> [stderr]@%INFO
. maxinterval -> now (0s)
[2017-05-19 15:56:57,125: INFO/MainProcess] beat: Starting...

这样就表示定时任务已经开始运行了。

到此这篇关于celery在python爬虫中定时操作实例讲解的文章就介绍到这了,更多相关celery如何在python爬虫中进行定时操作内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现的系统实用log类实例
Jun 30 Python
Python验证企业工商注册码
Oct 25 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
May 28 Python
深入了解Python数据类型之列表
Jun 24 Python
python距离测量的方法
Mar 06 Python
详解django.contirb.auth-认证
Jul 16 Python
关于python列表增加元素的三种操作方法
Aug 22 Python
python编写计算器功能
Oct 25 Python
Python SSL证书验证问题解决方案
Jan 13 Python
浅析Python 抽象工厂模式的优缺点
Jul 13 Python
Python 内存管理机制全面分析
Jan 16 Python
Python可视化神器pyecharts绘制水球图
Jul 07 Python
python输出国际象棋棋盘的实例分享
Nov 26 #Python
Django多个app urls配置代码实例
Nov 26 #Python
python Xpath语法的使用
Nov 26 #Python
python模拟点击玩游戏的实例讲解
Nov 26 #Python
Python批量修改xml的坐标值全部转为整数的实例代码
Nov 26 #Python
Django filter动态过滤与排序实现过程解析
Nov 26 #Python
python中用ctypes模拟点击的实例讲解
Nov 26 #Python
You might like
一步一步学习PHP(1) php开发环境配置
2010/02/15 PHP
js实现广告漂浮效果的小例子
2013/07/02 Javascript
js中settimeout方法加参数的使用实例
2014/02/27 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
原生js实现网易轮播图效果
2020/04/10 Javascript
javascript事件的传播基础实例讲解(35)
2017/02/14 Javascript
AngularJS 异步解决实现方法
2017/06/12 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
详解bootstrap用dropdown-menu实现上下文菜单
2017/09/22 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
2018/12/29 Javascript
layui实现三级导航菜单
2019/07/26 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
2019/09/20 Javascript
python使用PyFetion来发送短信的例子
2014/04/22 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
python的pip安装以及使用教程
2018/09/18 Python
python实现flappy bird游戏
2018/12/24 Python
使用python list 查找所有匹配元素的位置实例
2019/06/11 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
2020/07/01 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
CSS3 开发工具收集
2010/04/17 HTML / CSS
匈牙利墨盒和碳粉购买网站:CDRmarket
2018/04/14 全球购物
Groupon西班牙官方网站:在线优惠券和交易,节省高达70%
2021/03/13 全球购物
EMPHASIS艾斐诗官网:周生生旗下原创精品珠宝品牌
2020/12/17 全球购物
客服主管岗位职责
2013/12/13 职场文书
饲料采购员岗位职责
2013/12/19 职场文书
社区活动邀请函范文
2014/01/29 职场文书
多媒体教室标语
2014/06/26 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
产品委托授权书范本
2014/09/16 职场文书
五年级学生评语大全
2014/12/26 职场文书
解决pytorch-gpu 安装失败的记录
2021/05/24 Python
JavaScript函数柯里化
2021/11/07 Javascript