[Tutor] Threading
Oleg Oltar
oltarasenko at gmail.com
Thu Sep 11 16:56:02 CEST 2008
Hi!
I need to open about 1200 urls from my database. And to check that those
urls are really exists.
I used urllib2.urlopen for it. But it's a little bit slow. I thought that
it's might be a good idea to do it in a threads. So it can add some
performance to my code.
Unfortunately I can't get started with the treading module. There are no
simple examples in the python docs. Not sure how to start.
What I want to have:
for my list of urls I want to start few threads, each one of them should do
some validation.
My code without threads:
def queryDb(query, db_name = sys.argv[1]):
db = MySQLdb.connect(db = db_name, read_default_file="~/.my.cnf")
c = db.cursor()
c.execute(query)
return c
def openUrl(url):
error = ''
try:
urllib2.urlopen(url)
except (urllib2.URLError, urllib2.HTTPError,httplib.BadStatusLine),
error:
pass
return str(error)
def isValuePresent(dbField):
if str(dbField).find('None') is not -1:
return False
else:
return True
def displayResults(resultTable):
for query in resultTable:
print query
def processUrl(url, guid, parent_guid):
def testUrls():
error = ''
resultTable = []
errorTable = ['None']
products = queryDb(query = """SELECT url, guid, parent from product;""")
i = 0
for product in products.fetchall():
url = product[0]
guid = product[1]
parent_guid = product[2]
error_code = ''
#resultTable = {}
#print product[0]
if isValuePresent(url) is False:
#print "!!!!!", "this one is none", product[0]
"""Checking if this is a variant and it has parent with url"""
if isValuePresent(parent_guid) is True:
#print parent_guid, isValuePresent(parent_guid)
for parent in queryDb(query="""SELECT url from product where
guid = '%s';""" %parent_guid).fetchall():
#print parent[0]
'''Checking if parent product contains url'''
if isValuePresent(parent[0]) is True:
url = guid + "the parent url is: " + parent[0]
error = openUrl(parent[0])
else:
error = 'The variant with guid ' + guid + ' and his
parent do not contain urls!'
"""So the product is parent, and it's expected that it's child
will contain guids"""
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20080911/0b23aaa1/attachment.htm>
More information about the Tutor
mailing list