异步写入 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回答
-
这里打断点 然后debug看看是否进入这里 以及具体的错误信息是什么
022020-04-21 -
o学者o
提问者
2020-04-21
已经解决了,MySQL 的配置有问题,但是连接的时候又不报错。
012020-04-22
相似问题