2 回答

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
不,但您可以創(chuàng)建一個(gè)集合來(lái)保存消息和事件信息并檢查新聞消息。
簡(jiǎn)單地
制作一個(gè)集合/數(shù)組
添加消息信息
檢查消息事件處理程序中的傳入消息是否在集合中
處理事件
從集合中刪除
不要忘記設(shè)置超時(shí)并從集合中清除過期數(shù)據(jù)。

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
根據(jù)文檔:awaitMessages
time:收集器應(yīng)該運(yùn)行的時(shí)間量(以毫秒為單位)
max:成功通過過濾器的消息數(shù)
在 Go 中,只需一個(gè)關(guān)鍵字就可以輕松使用一個(gè)例程go
,因此實(shí)現(xiàn) asynchronous( async
) 非常簡(jiǎn)單。
解決思路:
創(chuàng)建消息存儲(chǔ)中心:具有以下特點(diǎn):
有一個(gè)垃圾收集機(jī)制:由于我們不斷地收集消息,所以我們需要一種機(jī)制來(lái)淘汰舊消息。
Need a mutex : 考慮到消息可能會(huì)產(chǎn)生競(jìng)爭(zhēng)條件,所以加了這個(gè)鎖來(lái)保證安全
它可以生成過濾器:要與每個(gè)過濾器進(jìn)行通信,我們需要為每個(gè)過濾器提供一個(gè)chan。
每當(dāng)創(chuàng)建新消息時(shí),我們將消息添加到消息中心,它還會(huì)通知每個(gè)過濾器。
定義回調(diào)函數(shù):這是過濾函數(shù)的結(jié)果。你可以根據(jù)這個(gè)結(jié)果做一些事情。例如_
完整代碼
我把完整的代碼放在replit和gist上。如果你想運(yùn)行它,你可以從replit中復(fù)制代碼并在環(huán)境變量中設(shè)置你的token和channel ID(或用戶ID)來(lái)測(cè)試它。
- 2 回答
- 0 關(guān)注
- 142 瀏覽
添加回答
舉報(bào)