是否想要每天讓 Discord Bot 在早上時傳早安圖,晚上時傳水餃圖,如果是這樣,那要如何讓 Discord Bot 可以達成上述動作呢?
此篇教學將會介紹如何使用 tasks 語法,來製作可以固定時間執行或者一段時間執行的程式,來達成我們想要讓 Discord Bot 做的循環任務。
下面的程式碼範例,是一個最基本的 Tasks 用法,功能是每秒輸出 "Hello, world!",可以參考下方表格來根據需求更改循環時間、運作次數,更多用法可參考 discord.py API。
@tasks.loop 傳入參數
名稱 | 資料型態 | 說明 |
---|---|---|
seconds 秒鐘 | float | 幾秒鐘執行一次 |
minutes 分鐘 | float | 幾分鐘執行一次 |
hours 小時 | float | 幾小時執行一次 |
time 時間 | datetime.time | 絕對時間執行一次 |
count 次數 | int | 執行指定次數後退出 |
添加 @函式.before_loop
可以在執行此函式前執行其他動作,添加 @函式.after_loop
可以在結束執行此函式後執行其他動作。
在 @tasks.loop()
傳入 count
參數,可以設定函式的執行次數。
在 @tasks.loop()
傳入 time
參數,可以設定執行函式的絕對時間,如果要設定多個時間,只要儲存成串列傳入即可。
感謝各位讀者看完此次的 tasks 教學,希望這篇教學有幫助到你們,目前筆者使用 tasks 來做每日報時功能、資料定時爬蟲、更改 Bot 狀態等等,讓我們一起把自己的 Discord Bot 擁有更多、更強大指令、功能吧!
如果此篇文章中有哪裡寫的不夠詳細,或者看不太懂意思,都歡迎到筆者的 Discord 伺服器中詢問、提供建議,目標讓 Python Discord Bot 教學系列文章可以篇篇清楚、完整,讓更多想持續學習的讀者可以獲得最正確的教學。
📢 歡迎加入我的 Discord 伺服器
https://discord.gg/Jtd3eVrFJs
Copyright © 2023 SmallShawn95. All rights reserved.