异步写入 MySQL 失败

来源:4-20 异步方式入库mysql

o学者o

2020-04-21

设置断点可以进入 process_item,但是不晓得为什么不能进入 do_insert。Spider closed (finished) 之后整个程序一直卡着。

class MySQLTwistedPipleline(object):
    def __init__(self, dbpool):
        self.dbpool = dbpool
    @classmethod
    def from_settings(cls, settings):
        dbparms = dict(
            host=settings["MYSQL_HOST"],
            db=settings["MYSQL_DBNAME"],
            user=settings["MYSQL_USER"],
            passwd=settings["MYSQL_PASSWORD"],
            charset="utf8",
            cursorclass=DictCursor,
            use_unicode=True,
        )
        dbpool = adbapi.ConnectionPool("MySQLdb", **dbparms)
        return cls(dbpool)
    def process_item(self, item, spider):
        query = self.dbpool.runInteraction(self.do_insert, item)
        query.addErrback(self.handle_error, item, spider)
        return item
    def handle_error(self, failure, item, spider):
        print(failure)
    def do_insert(self, cursor, item):
        insert_sql = """
        insert into article 
        (title, url, url_object_id, front_image_url, front_image_path, tags, content, parise_nums, comment_nums, fav_nums, create_time) 
        VALUES 
        (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
        """
        params = []
        params.append(item.get("title", ""))
        params.append(item.get("url", ""))
        params.append(item.get("url_object_id", ""))
        front_image_url_str = ",".join(item.get("front_image_url", []))
        params.append(front_image_url_str)
        params.append(item.get("front_image_path", ""))
        params.append(item.get("tags", ""))
        params.append(item.get("content", ""))
        params.append(item.get("parise_nums", 0))
        params.append(item.get("comment_nums", 0))
        params.append(item.get("fav_nums", 0))
        params.append(item.get("create_time", "1970-07-01"))
        cursor.execute(insert_sql, tuple(params))

不进入断点,程序也不自动停止。

图片描述

写回答

2回答

bobby

2020-04-21

//img1.sycdn.imooc.com/szimg/5e9eb703091a5cf608140610.jpg 这里打断点 然后debug看看是否进入这里 以及具体的错误信息是什么

0
2
o学者o
非常感谢!
2020-04-21
共2条回复

o学者o

提问者

2020-04-21

已经解决了,MySQL 的配置有问题,但是连接的时候又不报错。

0
1
bobby
好的,
2020-04-22
共1条回复

Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课

带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎

5796 学习 · 6290 问题

查看课程