ADD file via upload

master
pnhekgfuf 2 years ago
parent 7ad6b5e424
commit c9f4ad14e0

@ -0,0 +1,48 @@
# -*- coding: utf-8 -*-
from pymysql.cursors import DictCursor
from twisted.enterprise import adbapi
class MySQLTwistedPipeline(object):
'''
将MySQL插入操作变成异步化
'''
def __init__(self, db_pool):
self.db_pool = db_pool
@classmethod
def from_settings(cls, settings):
'''
create db_pool
'''
db_parameters = dict(
host=settings["MYSQL_HOST"],
db=settings["MYSQL_DBNAME"],
user=settings["MYSQL_USER"],
passwd=settings["MYSQL_PASSWORD"],
charset="utf8",
cursorclass=DictCursor,
use_unicode=True
)
db_pool = adbapi.ConnectionPool("pymysql", **db_parameters)
return cls(db_pool)
def process_item(self, item, spider):
'''
process item
'''
query = self.db_pool.runInteraction(self.do_insert, item)
query.addErrback(self.handle_error, item, spider)
def handle_error(self, failure, item, spider):
'''
handle error of insert to mysql
'''
print(failure)
def do_insert(self, cursor, item):
'''
insert data into the database
'''
insert_sql, parameters = item.get_insert_sql()
cursor.execute(insert_sql, parameters)
Loading…
Cancel
Save