mirror of https://github.com/scrapy/scrapy.git
Added a periodic ping to maintain mysql connection active
--HG-- extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%40152
This commit is contained in:
parent
4606b7f9c5
commit
6cfbe78d63
|
|
@ -17,6 +17,7 @@ DEFAULT_ITEM_CLASS = 'scrapy.item.ScrapedItem'
|
|||
USER_AGENT = '%s/%s' % (BOT_NAME, BOT_VERSION)
|
||||
DOWNLOAD_TIMEOUT = 600
|
||||
MYSQL_CONNECTION_SETTINGS = {"charset": "utf8" }
|
||||
MYSQL_CONNECTION_PING_PERIOD = 600
|
||||
|
||||
SCHEDULER = 'scrapy.core.scheduler.Scheduler'
|
||||
SCHEDULER_ORDER = 'BFO' # available orders: BFO (default), DFO
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ Function for dealing with databases
|
|||
import re
|
||||
from scrapy.conf import settings
|
||||
from scrapy.core import log
|
||||
from scrapy.core.engine import scrapyengine
|
||||
|
||||
def mysql_connect(db_uri, **kwargs):
|
||||
"""
|
||||
|
|
@ -27,4 +28,12 @@ def mysql_connect(db_uri, **kwargs):
|
|||
dcopy["passwd"] = "********"
|
||||
log.msg("Connecting db with settings %s" % dcopy )
|
||||
|
||||
return MySQLdb.connect(**d)
|
||||
conn = MySQLdb.connect(**d)
|
||||
|
||||
#this is to maintain active the connection
|
||||
def _ping():
|
||||
log.msg("Pinging connection to %s/%s" % (d.get('host'), d.get('db')) )
|
||||
conn.ping()
|
||||
scrapyengine.addtask(_ping, settings.getint("MYSQL_CONNECTION_PING_PERIOD", 600))
|
||||
|
||||
return conn
|
||||
Loading…
Reference in New Issue