我下載一個很大的CSV文件遙遠,想推都行到MySQL,因爲他們進來。我用csv.reader
解析遙遠的文件。我將1000行批量添加到MySQL中。下載一個文件,並推到MySQL不會超時在Python
問題是與對等端的連接在5分鐘後超時,儘管文件可能在不到一分鐘內下載,但推入MySQL需要更多的時間。
有沒有辦法有下載任務和異步工作,所以與對端的連接不會等待MySQL的約束推工作?
我想避免
- 下載在內存中的完整文件,如果沒有必要
- 起儘快推入MySQL作爲第一線下載不必亂
- 與臨時文件
基本上,我希望我的python腳本可以做類似curl file | my_script_that_pushes_values.sh
的事情。
這裏是我做的一個例證:
csvReader = csv.reader(distantfile)
valuesBuffer = []
for row in csvReader:
valuesBuffer.append(getValues(row))
if len(valuesBuffer) % 1000 = 0:
pushValuesIntoMySQL(valuesBuffer)
valuesBuffer = []
pushValuesIntoMySQL(valuesBuffer)
謝謝,不幸的是,它不會在我的情況下工作。超時時間與服務於csv的遠程服務器有關,我無法控制它,而不是使用我的MySQL數據庫。另外,我需要在CSV中進行一些後處理,然後再推送(在我的示例中隱藏在'getValues()'中)。 – 2013-04-27 21:43:57
@MadEchet希望這個編輯能涵蓋它 – Vyktor 2013-04-27 21:58:12
正是我在找的東西,謝謝! – 2013-04-28 06:56:24