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 相关文章推荐
pycharm 使用心得(六)进行简单的数据库管理
Jun 06 Python
Python在线运行代码助手
Jul 15 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
Nov 29 Python
用tensorflow构建线性回归模型的示例代码
Mar 05 Python
Python中Numpy包的安装与使用方法简明教程
Jul 03 Python
python dict 相同key 合并value的实例
Jan 21 Python
Python 生成一个从0到n个数字的列表4种方法小结
Nov 28 Python
python标识符命名规范原理解析
Jan 10 Python
python安装和pycharm环境搭建设置方法
May 27 Python
使用keras实现孪生网络中的权值共享教程
Jun 11 Python
Python类的继承super相关原理解析
Oct 22 Python
2021年值得向Python开发者推荐的VS Code扩展插件
Jan 25 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时的知识积累总结
2013/06/07 PHP
配置php网页显示各种语法错误
2013/09/23 PHP
Php中使用Select 查询语句的实例
2014/02/19 PHP
PHP+Apache+Mysql环境搭建教程
2016/08/01 PHP
yii插入数据库防并发的简单代码
2017/05/27 PHP
通过身份证号得到出生日期和性别的js代码
2009/11/23 Javascript
有趣的javascript数组定义方法
2010/09/10 Javascript
学习jQuey中的return false
2015/12/18 Javascript
Bootstrap按钮下拉菜单组件详解
2016/05/10 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
基于vue+ bootstrap实现图片上传图片展示功能
2017/05/17 Javascript
利用CDN加速react webpack打包后的文件详解
2018/02/22 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
js canvas实现写字动画效果
2018/11/30 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
[00:32]2018DOTA2亚洲邀请赛iG出场
2018/04/03 DOTA
Python实现mysql数据库更新表数据接口的功能
2017/11/19 Python
Python爬取成语接龙类网站
2018/10/19 Python
用Anaconda安装本地python包的方法及路径问题(图文)
2019/07/16 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
Python 通过截图匹配原图中的位置(opencv)实例
2019/08/27 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
python面向对象之类属性和类方法案例分析
2019/12/30 Python
HTML5拖拽文件上传的示例代码
2021/03/04 HTML / CSS
French Connection官网:女装、男装及家居用品
2019/03/18 全球购物
Sisley法国希思黎美国官方网站:享誉全球的奢华植物美容品牌
2020/06/27 全球购物
美国电子产品购物网站:BuyDig.com
2020/06/17 全球购物
LINUX下线程,GDI类的解释
2016/12/14 面试题
七一党日活动总结
2014/07/08 职场文书
化工见习报告范文
2014/10/31 职场文书
Python如何使用循环结构和分支结构
2022/04/13 Python
MySQL数据库 任意ip连接方法
2022/05/20 MySQL