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 相关文章推荐
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
Apr 25 Python
以Flask为例讲解Python的框架的使用方法
Apr 29 Python
Python实现监控程序执行时间并将其写入日志的方法
Jun 30 Python
对python中GUI,Label和Button的实例详解
Jun 27 Python
python网络爬虫 CrawlSpider使用详解
Sep 27 Python
Python udp网络程序实现发送、接收数据功能示例
Dec 09 Python
python为什么会环境变量设置不成功
Jun 23 Python
Python设计密码强度校验程序
Jul 30 Python
Python selenium如何打包静态网页并下载
Aug 12 Python
python爬虫智能翻页批量下载文件的实例详解
Feb 02 Python
python 经纬度求两点距离、三点面积操作
Jun 03 Python
关于python中readlines函数的参数hint的相关知识总结
Jun 24 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 goto语句简介和使用实例
2014/03/11 PHP
PHP中使用break跳出多重循环代码实例
2015/01/21 PHP
CI配置多数据库访问的方法
2016/03/28 PHP
windows环境下使用Composer安装ThinkPHP5
2018/05/18 PHP
Laravel框架使用Redis的方法详解
2018/05/30 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
基于jquery实现简单的分页控件
2016/03/17 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
JavaScript实现大图轮播效果
2017/01/11 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
2018/07/27 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
layer关闭弹出窗口触发表单提交问题的处理方法
2019/09/25 Javascript
python自动化工具日志查询分析脚本代码实现
2013/11/26 Python
浅析使用Python操作文件
2017/07/31 Python
python调用API实现智能回复机器人
2018/04/10 Python
python 常见字符串与函数的用法详解
2018/11/23 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
python 列表推导和生成器表达式的使用
2021/02/01 Python
利用CSS3实现的文字定时向上滚动
2016/08/29 HTML / CSS
HTML 5.1来了 9月份正式发布 更新内容预览
2016/04/26 HTML / CSS
美国时尚孕妇装品牌:A Pea in the Pod
2017/07/16 全球购物
经典广告词大全
2014/03/14 职场文书
中秋晚会策划方案
2014/06/12 职场文书
公司员工活动策划方案
2014/08/20 职场文书
2014年“四风”问题个人整改措施
2014/09/17 职场文书
个人委托书如何写
2014/09/25 职场文书
个人作风建设总结
2014/10/23 职场文书
保管员岗位职责
2015/02/14 职场文书
个人借条范本
2015/05/25 职场文书
小学语文教师研修日志
2015/11/13 职场文书
Python道路车道线检测的实现
2021/06/27 Python
JavaScript展开运算符和剩余运算符的区别详解
2022/02/18 Javascript