亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

爬蟲由于其特殊性,可能需要定時做增量抓取,也可能需要定時做模擬登陸,以防止cookie過期,而celery恰恰就實(shí)現(xiàn)了定時任務(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(
  # 配置所在時區(qū)
  CELERY_TIMEZONE='Asia/Shanghai',
  CELERY_ENABLE_UTC=True,
  # 官網(wǎng)推薦消息序列化方式為json
  CELERY_ACCEPT_CONTENT=['json'],
  CELERY_TASK_SERIALIZER='json',
  CELERY_RESULT_SERIALIZER='json',
  # 配置定時任務(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`停掉前一個worker,因?yàn)槲覀兇a改了,需要重啟worker才會生效。我們再次以`celery -A tasks worker -l info`這個命令開啟worker。

這個時候我們只是開啟了worker,如果要讓worker執(zhí)行任務(wù),那么還需要通過beat給它定時發(fā)送,我們再開一個命令行,切換到項(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...

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

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

相關(guān)文章

最新評論