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实现115网盘自动下载的方法
Sep 30 Python
浅谈Python类的__getitem__和__setitem__特殊方法
Dec 25 Python
Python下调用Linux的Shell命令的方法
Jun 12 Python
python实现写数字文件名的递增保存文件方法
Oct 25 Python
python实现简单名片管理系统
Nov 30 Python
python3 反射的四种基本方法解析
Aug 26 Python
python 内置函数汇总详解
Sep 16 Python
Python @property原理解析和用法实例
Feb 11 Python
Python图像处理库PIL的ImageFont模块使用介绍
Feb 26 Python
Python单例模式的四种创建方式实例解析
Mar 04 Python
python+selenium+Chrome options参数的使用
Mar 18 Python
Python如何在main中调用函数内的函数方式
Jun 01 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 计划任务 检测用户连接状态
2012/03/29 PHP
php实现邮件发送并带有附件
2014/01/24 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
织梦sitemap地图实时推送给百度的教程
2015/08/03 PHP
详解PHP中的null合并运算符
2015/12/30 PHP
支付宝服务窗API接口开发php版本
2016/07/20 PHP
PHP实现的堆排序算法详解
2017/08/17 PHP
利用PHP扩展Xhprof分析项目性能实践教程
2018/09/05 PHP
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
js 匿名调用实现代码
2009/06/19 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
2013/06/21 Javascript
用javascript删除当前行,添加行(示例代码)
2013/11/25 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
ES6正则表达式扩展笔记
2017/07/25 Javascript
JavaScrip关于创建常量的知识点
2017/12/07 Javascript
jQuery实现ajax回调函数带入参数的方法示例
2018/06/26 jQuery
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
js前端传json后台接收‘‘被转为quot的问题解决
2020/11/12 Javascript
Python 自动安装 Rising 杀毒软件
2009/04/24 Python
全面解读Python Web开发框架Django
2014/06/30 Python
python使用append合并两个数组的方法
2015/04/28 Python
AVIS安飞士奥地利租车官网:提供奥地利、欧洲和全世界汽车租赁
2016/11/29 全球购物
化工操作工岗位职责
2014/04/29 职场文书
活动总结模板
2014/05/09 职场文书
信息管理专业自荐书
2014/06/05 职场文书
企业文化宣传标语
2014/06/09 职场文书
教师群众路线心得体会
2014/11/04 职场文书
房租涨价通知
2015/04/23 职场文书
爱国主义影片观后感
2015/06/18 职场文书
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python
十大动画制作软件,Adobe产品上榜两款,第一是行业标准软件
2022/03/18 杂记
vue3引入highlight.js进行代码高亮的方法实例
2022/04/08 Vue.js