线程和并行访问MySQL(pyMySQL)

时间:2017-02-22 21:20:17

标签: python mysql multithreading python-3.x pymysql

我试着理解线程是如何工作的。

这是我无限运行的代码:

while(True):
    # Check All Streams if they are online AND with which Summoner #
    checkStreams()

    # Check if we have new finished games #
    if newGames:
         getMatchHistory()
         updateSummonerStats()

    # Update Online Stats #
    updateOnline()

checkStreams()是一个相当小的功能,但getMatchHistory()updateSummonerStats()需要相当长的时间而且不会经常运行。 因此,我们的想法是在两个单独的线程中运行这两个函数。

从我在这里阅读http://softwareramblings.com/2008/06/running-functions-as-threads-in-python.html我的方法就是:

这些函数应该运行是单独的线程,但后面的函数应该立即继续

if newGames:   
     t1 = threading.Thread(target=getMatchHistory)
     t1.start()
     t2 = threading.Thread(target=updateSummonerStats)
     t2.start()

现在我遇到了这个问题:两个线程函数都访问我的MySQL数据库并导致此错误:Packet sequence number wrong - got 0 expected 2和许多类似的错误。

这对于并列功能是否是正确的方法还是有更好的解决方案?

0 个答案:

没有答案