【问题标题】:How to run two Flask discord.py bots in the same repl.it project?如何在同一个 repl.it 项目中运行两个 Flask discord.py 机器人?
【发布时间】:2021-06-11 23:32:51
【问题描述】:

我正在使用 repl.it 在同一个 repl 中运行两个机器人,并且我正在使用导入,就像我在其他 stackoverflow 问题中看到的那样。

print('This will be the page where all bots will be made.')
import os
import bot1
import keep_alive
import bot2
import keep_alive1
while True:
  print('ALL BOTS STARTED!')

问题是,它永远不会进入while 循环(用于测试),因为它卡在 bot1 文件中。我应该如何解决这个问题? 我在同一个 repl 项目中这样做的原因是我可以合并机器人数据库。

【问题讨论】:

    标签: python discord.py repl.it


    【解决方案1】:

    您可以尝试使用:

    os.system(f"python {filename} &")
    

    在您导入的同一脚本中。 您只需将 {filename} 替换为您的文件即可。

    导入只是转到一个文件,而不是离开该文件。

    【讨论】:

      【解决方案2】:

      您不应该在 repl.it 中使用 SQLite 或本地数据库。这是因为当容器重新启动时,您可能会丢失一些数据(除非它们多年来已更改)。

      建议使用像MongoDB这样的数据库,它提供了一个免费的500MB数据库供您使用。

      既然你问了,那我就回答。你可以试试这个:

      import asyncio
      
      loop = asyncio.get_event_loop()
      loop.create_task(bot1.start("bot_token1"))
      loop.create_task(bot2.start("bot_token2"))
      loop.run_forever()
      

      您需要使用 cogs 并在 main.py 中设置两个机器人,然后使用 cogs 来更好地管理文件。

      【讨论】:

      • 我不一定会为此使用asynciothreadingmultiprocessing 会是更好的选择。虽然如果机器人很小,这应该可以解决问题
      • 好吧@ŁukaszKwieciński 我基于 asyncio 的使用:使用 repl.it 托管您的机器人不会很复杂或需要太多带宽。感谢您的建议
      • @ŁukaszKwieciński 我什至不知道为什么我把它放在那里 lmao
      • 但是,我使用的是文件数据库,txt 文件,因为我不知道如何使用 SQLite。现在,我正在使用 with open(str(ctx.author.id)+'.txt','w'): print('Testing', file=out) 创建文本文件
      • 他不是在告诉你使用数据库,而是在推荐。尽管使用文本文件很痛苦,但您至少应该切换到 json 或 yaml 文件
      猜你喜欢
      • 2021-08-13
      • 1970-01-01
      • 1970-01-01
      • 2020-07-19
      • 2022-11-11
      • 2021-12-27
      • 1970-01-01
      • 2023-03-15
      • 2019-06-17
      相关资源
      最近更新 更多