欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

celery在python爬蟲中定時(shí)操作實(shí)例講解

 更新時(shí)間:2020年11月27日 08:31:24   作者:小妮淺淺  
在本篇文章里小編給大家整理了一篇關(guān)于celery在python爬蟲中定時(shí)操作實(shí)例講解內(nèi)容,需要的朋友們可以參考下。

使用定時(shí)功能對于我們想要快速獲取某個(gè)數(shù)據(jù)來說,是一個(gè)非常好的方法。這樣我們就不用苦苦守在電腦屏幕前,只為蹲到某個(gè)想要的東西。在之前我們已經(jīng)講過time函數(shù)進(jìn)行定時(shí)操作,這算是time函數(shù)的比較基礎(chǔ)的一個(gè)用法了。其實(shí)定時(shí)功能同樣可以用celery實(shí)現(xiàn),具體的方法我們往下看:

爬蟲由于其特殊性,可能需要定時(shí)做增量抓取,也可能需要定時(shí)做模擬登陸,以防止cookie過期,而celery恰恰就實(shí)現(xiàn)了定時(shí)任務(wù)的功能。在上述基礎(chǔ)上,我們將`tasks.py`文件改成如下內(nèi)容

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(
  # 配置所在時(shí)區(qū)
  CELERY_TIMEZONE='Asia/Shanghai',
  CELERY_ENABLE_UTC=True,
  # 官網(wǎng)推薦消息序列化方式為json
  CELERY_ACCEPT_CONTENT=['json'],
  CELERY_TASK_SERIALIZER='json',
  CELERY_RESULT_SERIALIZER='json',
  # 配置定時(shí)任務(wù)
  CELERYBEAT_SCHEDULE={
    'my_task': {
      'task': 'tasks.add', # tasks.py模塊下的add方法
      'schedule': 60,   # 每隔60運(yùn)行一次
      'args': (23, 12),
    }
  }
)
@app.task
def add(x, y):
return x + y

然后先通過`ctrl+c`停掉前一個(gè)worker,因?yàn)槲覀兇a改了,需要重啟worker才會(huì)生效。我們再次以`celery -A tasks worker -l info`這個(gè)命令開啟worker。

這個(gè)時(shí)候我們只是開啟了worker,如果要讓worker執(zhí)行任務(wù),那么還需要通過beat給它定時(shí)發(fā)送,我們再開一個(gè)命令行,切換到項(xiàng)目根目錄,通過

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...

這樣就表示定時(shí)任務(wù)已經(jīng)開始運(yùn)行了。

到此這篇關(guān)于celery在python爬蟲中定時(shí)操作實(shí)例講解的文章就介紹到這了,更多相關(guān)celery如何在python爬蟲中進(jìn)行定時(shí)操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論