-1
我有一個數據庫10,000 adam_id
's。對於每個adam_id
,我需要通過API下拉信息。分配python中的工作負載
我的表看起來像這樣:
`title`
- adam_id
- success (boolean)
- number_of_tries (# of times success=0 when trying to do the pull down)
這裏是我想創建函數:
def pull_down(cursor):
work_remains = True
while work_remains:
cursor.execute("""SELECT adam_id FROM title WHERE success=0
AND number_of_tries < 5 ORDR BY adam_id LIMIT 1""")
if len(cursor.fetchall()):
adam_id = cursor.fetchone()[0]
do_api_call(adam_id)
else:
work_remains = False
def do_api_call(adam_id):
# do api call
if success:
cursor.execute("UPDATE title SET success=1 WHERE adam_id = adam_id")
else:
cursor.execute("UPDATE title SET number_of_tries+=1 WHERE adam_id=adam_id")
我會怎麼做上面用python的多處理功能n
工人而不是做它有一個同步過程?我已經開始研究多處理模塊(http://docs.python.org/library/multiprocessing.html),但目前爲止我很難消化這個模塊。
這是多處理將幫助緩慢的位?你有沒有分析過這些?首先,一次獲取多於一行的數據應該可以加快速度,我想可以。或者它的API調用很慢?什麼是API? – jozzas
@jozzas:API調用每次調用大約需要30秒。 – David542