本文介紹了根據 UTC 時間制作 discord.py(重寫版本)計時器的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我想添加一個基于 UTC 時間的計時器來刷新我每天下載的 API 文件.我正在使用 Discord.py 的重寫版本.這就是我在下面制作的方式:
I want to add a timer based off of UTC time to refresh my API files that I download daily. I am using the rewrite version of Discord.py. This is how I made it below:
@client.event
# Updates API files daily
async def clock_timer():
from datetime import datetime
import pytz
datetime_utc = datetime.now(pytz.utc)
await datetime_utc.strftime("%H:%M:%S") == "03:00:00"
if datetime_utc.strftime("%H:%M:%S") == "03:00:00":
processes.api_grabber()
我這樣做對嗎?
推薦答案
await datetime_utc.strftime("%H:%M:%S") == "03:00:00"
不是一個有效的語句,你需要做的是獲取 time_delta 并一直休眠.
await datetime_utc.strftime("%H:%M:%S") == "03:00:00"
is not a valid statement, what you need to do is get the time_delta and sleep till that.
datetime_utc = datetime.now(pytz.utc)
three_am_tmr = datetime_utc.replace(hour=3, minute=0, second=0) + timedelta(days=1)
delta = (three_am_tmr - datetime_utc).total_seconds()
await asyncio.sleep(delta)
#process api here
但是,如果您希望計時器每天執行,您必須使用 discord.py 任務或類似 APS
However if you want the timer to execute daily, you have to use a discord.py task or something like APS
from discord.ext import tasks
@tasks.loop(days=1)
async def grab(something):
#proccess api here
@grab.before_loop()
async def waiter():
datetime_utc = datetime.now(pytz.utc)
three_am_tmr = datetime_utc.replace(hour=3, minute=0, second=0) +
timedelta(days=1)
delta = (three_am_tmr - datetime_utc).total_seconds()
await asyncio.sleep(delta)
#start task in a command
參考資料:
- 日期時間
- 任務
這篇關于根據 UTC 時間制作 discord.py(重寫版本)計時器的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!