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 相关文章推荐
深入讲解Java编程中类的生命周期
Feb 05 Python
让Python更加充分的使用Sqlite3
Dec 11 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
Dec 14 Python
Python实现控制台中的进度条功能代码
Dec 22 Python
Django自定义manage命令实例代码
Feb 11 Python
TensorFlow Session会话控制&Variable变量详解
Jul 30 Python
Win下PyInstaller 安装和使用教程
Dec 25 Python
python与mysql数据库交互的实现
Jan 06 Python
Python matplotlib画曲线例题解析
Feb 07 Python
如何在django中运行scrapy框架
Apr 22 Python
基于TensorFlow的CNN实现Mnist手写数字识别
Jun 17 Python
python中os.remove()用法及注意事项
Jan 31 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 高手之路(三)
2006/10/09 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
2014/07/05 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
2013/07/09 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
2015/08/23 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
基于JavaScript实现五子棋游戏
2020/08/26 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
关于jquery layui弹出层的使用方法
2018/04/21 jQuery
vue弹窗组件的实现示例代码
2018/09/10 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
vue数据初始化initState的实例详解
2019/04/11 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
Python3.5 Pandas模块之Series用法实例分析
2019/04/23 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
python中with语句结合上下文管理器操作详解
2019/12/19 Python
python梯度下降算法的实现
2020/02/24 Python
实习生个人的自我评价
2013/12/08 职场文书
企业内部培训方案
2014/02/04 职场文书
预备党员表决心书
2014/03/11 职场文书
青蓝工程实施方案
2014/03/27 职场文书
《火烧云》教学反思
2014/04/12 职场文书
学期评语大全
2014/04/30 职场文书
2014年百日安全生产活动总结
2014/05/04 职场文书
建筑学专业自荐书
2014/07/09 职场文书
优秀党支部申报材料
2014/12/24 职场文书
婚礼新人答谢词
2015/01/04 职场文书
62句有关感恩节文案(推荐收藏)
2019/11/28 职场文书