zoukankan      html  css  js  c++  java
  • pyspider操作千万级库,pyspider在对接量级较大库的策略

    pyspider操作千万级库,pyspider在对接量级较大库的策略

    如果是需要pyspider正常的流程去执行,那必然是会在on_strat()时任务执行超时,可能只读取出几万条或十几万条数据就会被破终止,然后执行index_page(),由于这个超时时间限制,且self.crawl()之后程序不是异步的,会暂时阻塞在on_start()这一步,若是异步的,可能情况会好点,但也可能会因为mysql读库太快,导致中间沉积大量任务,需要其他的思路去解决这个问题。

    pyspider脚本的设定是分布式的,所以不保证当前的Handler只有一个运行实例,使用其类间变量的结果是不确定的
    如果想要多个类(脚本)实例间共享一个变量,将其放到redis中或者采用其他策略
    具体方法是在redis中不断更新一个key,每次在on_start()中填充进去,到了on_finished()中先回写这些id,完成之后再清空其value,不断重复这个过程,能达到对接量级较大库的效果。

  • 相关阅读:
    background-clip与background-origin
    jquery判断一个元素是否为某元素的子元素
    Math.pow()实现开任意次方根
    vue基础点
    css3
    css系统学习
    angularJs
    jquery与JavaScript
    bootstrapt使用
    bootstrap
  • 原文地址:https://www.cnblogs.com/zdz8207/p/python_learn_note_121.html
Copyright © 2011-2022 走看看