啟動兩個 CPU 阻塞偵聽器並等待其中一個完成 (Starting two cpu blocking listeners and wait until one of them finishes)


問題描述

啟動兩個 CPU 阻塞偵聽器並等待其中一個完成 (Starting two cpu blocking listeners and wait until one of them finishes)

我正在嘗試同時收聽電報或不和諧消息,無論第一個消息是什麼。對於 Telegram,我使用的是 Telethon:

async def listentg():
    tgclient = TelegramClient('anon', conntg.tg_api_id, conntg.tg_api_hash)
    @tgclient.on(events.NewMessage(chats=conntg.canaltg, pattern=patternmatch))
    async def tg_event_handler(event):
        print("Telegram message listened")
        await tgclient.disconnect()
    await tgclient.start()
    await tgclient.run_until_disconnected()

對於不和諧,我使用的是 Discum

async def listendc():
    dcclient = discum.Client(token=conndc.tokendc, log=False)
    @dcclient.gateway.command
    def dc_event_handler(resp):
        if resp.event.message:
            print("Discord message listened")
            dcclient.gateway.close()
    dcclient.gateway.run()

我知道要同時運行 CPU 阻塞代碼,我必須 (https://docs.python.org/3/library/asyncio‑eventloop.html#asyncio.loop.run_in_executor) 使用python進程,不過不知道怎麼做,等第一個返回值。


參考解法

方法 1:

You don't really need to have them in parallel for simultaneously, it is easier to have them concurrent (but still simultaneosly waiting). You can use Python Thread‑based parallelism instead.

(by Pablowowkin2)

參考文件

  1. Starting two cpu blocking listeners and wait until one of them finishes (CC BY‑SA 2.5/3.0/4.0)

#discord #Python #python-3.x #telethon






相關問題

如何讓不和諧的機器人提及用戶? (How to make a discord bot mention a user?)

如何計算表情符號並在不和諧的機器人反應中顯示它們? (How to count the emojis and display them in a discord bot reaction?)

每當機器人啟動時,它就會開始向控制台發送垃圾郵件,沒有明顯的問題 (Whenever the bot starts up, it just starts spamming the console with no visible issue)

Discord.js ReferenceError:嵌入未定義 (Discord.js ReferenceError: embed is not defined)

在 Discord.js 中查找所有具有角色的成員 (Finding all members with a role in Discord.js)

啟動兩個 CPU 阻塞偵聽器並等待其中一個完成 (Starting two cpu blocking listeners and wait until one of them finishes)

discord.py - 猜謎遊戲無響應(更新) (discord.py - Guessing game no response (updated))

\n 換行符不保留代碼塊文本樣式 (\n Line break does not preserve code block text style)

如何在對不同消息做出反應時讓不和諧機器人刪除以前的角色? (How to make discord bot remove the previous role when reacting to a different message?)

一段代碼阻礙了我在學校的 Discord 機器人 (One piece of code hindering my Discord bot for School)

如何使不和諧機器人隨機跳過響應 (How to make discord bot randomly skip a response)

我應該放什麼行,這樣當我寫東西時,Discord 機器人會以我想要的方式響應(discord.py)? (What lines should I put so that when I write something the Discord bot responds in a way that I want (discord.py)?)







留言討論