【问题标题】:2 Python 3 Async Clients Simultaneously (discord.py + aiohttp.web)同时 2 个 Python 3 异步客户端(discord.py + aiohttp.web)
【发布时间】:2017-09-20 02:03:50
【问题描述】:

我有一个 discord.py 机器人,我想通过向服务器发送 GET 请求来激活 discord 机器人中的功能。

我在其他地方找到了这段代码,但它不起作用。没有错误,但它仍然一个接一个地运行客户端。

def runInParallel(*fns):
  proc = []
  for fn in fns:
    p = Process(target=fn)
    p.start()
    proc.append(p)
  for p in proc:
    p.join()

如何在不关闭 discord 服务器的情况下运行 aiohttp 服务器?

【问题讨论】:

    标签: python-3.5 python-3.6 discord aiohttp


    【解决方案1】:

    我找到了一种解决方案,我不得不使用异步 Web 服务器,即文档记录不佳的 Kyoukai - http://kyoukai.readthedocs.io/en/latest/

    我现在可以与 Discord API 无缝交互并托管一个简单的 Web 服务器!

    【讨论】:

      【解决方案2】:

      您可以将 aiohttp 与任何使用 asyncio 的库一起运行。 或者您可以在单独的线程中启动 aiohttp。

      【讨论】:

      • 好的,你能给我文档或代码示例的链接吗?启动异步进程对我不起作用,因为启动两个异步库中的每一个的命令都会阻塞代码。
      • 没有具体的文档如何在单独的线程中运行 aiohttp,但可以尝试搜索如何在单独的线程中运行 asyncio 事件循环。一般来说,代码可能看起来像这样" def start_web(): loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) web = aiohttp.web.Application() aiohttp.web.run_app(app, loop=lop) threading .Thread(start_web).run
      猜你喜欢
      • 2018-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-23
      相关资源
      最近更新 更多