celery在python爬虫中定时操作实例讲解
作者:小妮浅浅 发布时间:2022-09-26 09:25:00
标签:celery,python爬虫,定时操作
使用定时功能对于我们想要快速获取某个数据来说,是一个非常好的方法。这样我们就不用苦苦守在电脑屏幕前,只为蹲到某个想要的东西。在之前我们已经讲过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...
这样就表示定时任务已经开始运行了。
来源:https://www.py.cn/jishu/jichu/21337.html
0
投稿
猜你喜欢
- 一、什么是NumPyNumpy--Numerical Python,是一个基于Python的可以存储和处理大型矩阵的库。几乎是Python
- 1 无参数情况配置URL及其视图如下:(r'^hello/$', hello)def hello(request): &nb
- 来自Six Revisions的一篇文章,作者对一些主流的浏览器进行了测试比较,测试主要针对以下几个方面进行:1.JavaScript执行速
- meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的<head>与</head&
- 操作实现函数: 代码如下:Function AddWater(n) Set Photo = 
- 起步利用 html5 的 <video> 标签可以播放:<video width="320" heig
- 1.首先自己直接在cmd中输入 pip3 install openCV是不可行的,即需要自己下载安装包本地安装2.openCV库 下载地址h
- python内存管理机制:引用计数垃圾回收内存池1. 引用计数当一个python对象被引用时 其引用计数增加 1 ; 当其不再被变量引用时
- 本文实例讲述了Python实现读取及写入csv文件的方法。分享给大家供大家参考,具体如下:新建csvData.csv文件,数据如下:具体代码
- 读写 JSON 数据问题你想读写 JSON(JavaScript Object Notation) 编码格式的数据。解决方案json模块提供
- php操作xml最近计划写个人的小网站,一系列原因选择了用php来写,最大的问题就是虽然php很流行,但我从来没有接触过php,看了一个多星
- MySQL由于它本身的小巧和操作的高效, 在数据库应用中越来越多的被采用.我在开发一个P2P应用的时候曾经使用MySQL来保存P2P节点,由
- 一、PyTorch批训练1. 概述PyTorch提供了一种将数据包装起来进行批训练的工具——DataLoader。使用的时候,只需要将我们的
- 本文进通过实例,讲述通过 prototype 自定义方法的过程,旨在抛砖引玉,如果不对的地方,欢迎指正!prototype 是在 IE 4
- 1.客户端的主页面:<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"
- 本文实例讲述了php将textarea数据提交到mysql出现很多空格的解决方法。分享给大家供大家参考。具体分析如下:有一些朋友可能会发现我
- 本文实例讲述了python进程池实现的多进程文件夹copy器。分享给大家供大家参考,具体如下:应用:文件夹copy器(多进程版)import
- 二元运算二元运算是指由两个元素形成第三个元素的一种规则,例如数的加法及乘法;更一般地,由两个集合形成第三个集合的产生方法或构成规则称为二次运
- 前言相信大家初入某个项目,一般都要看代码。有时候,想把代码文件打印下来看,不过一般代码文件数量都在两位数或更多,逐一打开、打印,确实太耗费精
- 这篇文章主要介绍了用Python画一个LinkinPark的logo代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的