我正在嘗試編寫一個簡單的python腳本,它將在115200處讀取傳入的串行數據(usb適配器)。每接收一行後,它都必須將其上傳到運行在Synology NAS在同一個網絡中。Python:將傳入的串行數據發送到MySQL
從python內部看到的mysql INSERT的問題是,它可能需要0.5秒到1,3秒,在這段時間內,任何傳入的消息都將丟失,可能有幾個。
我已經嘗試了許多線程選項代碼,但不能讓它爲正常例子代碼告訴你如何在同一時間運行1,2或3個線程,但我需要的是因爲他們是創建線程工作傳入數據所需的。
btw:使用Raspberry Pi。
作爲參考,有些我都試過了例子: http://www.tutorialspoint.com/python/python_multithreading.htm
您應該調查爲什麼INSERT需要這麼長時間,而不是喋喋不休地使用線程。 –
需要多長時間?即使需要0.1秒,我也不會在這段時間讀取串行端口。反正我的代碼是很簡單的測試:進口MySQLdb的 進口時間 開始=了time.time() DB = MySQLdb.connect( 「192.168.1.xxx」, 「」, 「」, 「」) 光標= db.cursor() SQL = 「」 「INSERT INTO測試(V1,V2)VALUES(111,222)」, 「」 嘗試: cursor.execute(SQL) db.commit() 除: #回滾,以防有任何錯誤 db.rollback() db.close() print「time:」+ str(time.time() - star t)更好的方法的建議? – Serge
我已經添加了一些中間時間,並且非常有趣,看到99%的浪費時間在mysqldb.connect中。正如你可以從下面的這些數據看到的。總是打開db連接打開是個好主意嗎? ---------連接後的時間:1.02 wrt前一個:1.02 ---------光標後的時間:1.02 wrt前一個:0.0 ---------執行後的時間:1.09 wrt前一個:0.07 ---------關閉後的時間:1.1 wrt前一個:0.0 – Serge