华南俳烁实业有限公司

python

當(dāng)前位置:中華考試網(wǎng) >> python >> python爬蟲 >> 文章內(nèi)容

celery如何在python爬蟲中進(jìn)行定時(shí)操作?

來(lái)源:中華考試網(wǎng)  [2020年11月27日]  【

  爬蟲由于其特殊性,可能需要定時(shí)做增量抓取,也可能需要定時(shí)做模擬登陸,以防止cookie過(guò)期,而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

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

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

python課程免費(fèi)試聽預(yù)約

  • 地區(qū):
  • 姓名:
  • 手機(jī):

  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)行了。

責(zé)編:fushihao

上一篇:scrapy如何在python分布式爬蟲中構(gòu)建?

下一篇: 沒有了

  • 會(huì)計(jì)考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語(yǔ)考試
  • 學(xué)歷考試
清河县| 赤水市| 桦甸市| 渑池县| 桦南县| 郑州市| 塔河县| 通州区| 石棉县| 阿拉善右旗| 绥棱县| 万源市| 泗洪县| 南充市| 大厂| 吉林市| 定襄县| 丹江口市| 丰镇市| 望奎县| 马关县| 鸡泽县| 尚志市| 绥阳县| 镇远县| 普定县| 志丹县| 姜堰市| 巴马| 泌阳县| 高清| 潮安县| 中牟县| 乌审旗| 浦北县| 沁源县| 项城市| 勐海县| 宜阳县| 乡城县| 贞丰县|