【问题标题】:Keep mysql connection alive保持mysql连接活跃
【发布时间】:2020-12-06 01:34:51
【问题描述】:

我正在开发一个需要 mysql 的 python discord bot。问题是这个脚本应该长时间处于活动状态,而不是总是使用 mysql。当一段时间过去了,它尝试连接到数据库时,我无法连接,因为它在查询过程中失去了与服务器的连接,然后连接就消失了。我想确保它永远不会失去连接。我正在使用 mysql 连接器。 我也无法访问 mysql 服务器本身。我只能访问数据库和表等,仅此而已。我已经尝试过一个在 3 分钟内运行 3 的线程,只是从中获取随机数据问题是当我启动线程时,机器人不会响应任何不和谐的命令...... 代码:

def keep_mysql():
    while True:
        keepalive = "SELECT * FROM prefixes"
        mycursor.execute(keepalive)
        result = mycursor.fetchall()
        print("Keeping mysql connection alive")
        time.sleep(180)


@bot.event
async def on_ready():
    keepalive = threading.Thread(target=keep_mysql())
    keepalive.start()

【问题讨论】:

    标签: python mysql python-3.x discord discord.py


    【解决方案1】:

    如何使用无限运行的循环?我用这样的东西来不断检查时间。

    import asyncio
    from discord.ext.tasks import loop
    
    @loop(count=None)
    async def keep_sql():
        await client.wait_until_ready()
        keepalive = "SELECT * FROM prefixes"
        mycursor.execute(keepalive)
        result = mycursor.fetchall()
        print("Keeping mysql connection alive")
        asyncio.sleep(180)
    
    @bot.event
    async def on_ready():
        print("Bot is online")
    
    keep_sql.start()
    bot.run(token)
    

    【讨论】:

    • 甜蜜。 Tnx 的帮助。只是出于好奇,你认为 3 分钟是确保它永远不会下降的好时机吗?
    • 没问题,应该没问题。
    猜你喜欢
    • 2011-05-21
    • 2011-08-07
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多