簡體   English   中英

使用“計划”在 Python 中的確定時間僅運行一次計划任務

[英]Run scheduled task only once on determinated hour in Python using 'schedule'

我想使用 python 中的庫計划執行計划任務以僅運行一次

我的例子是這樣的:

schedule.every().day.at(hour).do(job)

它每天執行一個任務,但我不希望它每天執行一次,就像這樣:

schedule.at(hour).do(job)

這可能嗎?

編輯

這是我的代碼以便更好地說明

for hour in sorted(list_of_hours):
    schedule.every().day.at(hour).do(task)

問題的解決方案,我認為這不是最好的做法,但效果很好,制作了一個 go 完成任務的計數器,最后比較了 te 列表和計數器中的小時數,如下所示:


counter = 0
qtOfHours = 0

def task():
    global counter += 1

for hour in sorted(list_of_hours):
    schedule.every().day.at(hour).do(task)

while True:
    schedule.run_pending()
    time.sleep(1)
    if counter == qtOfHours:
        sys.exit()

然后每天運行它,我將使用基於操作系統的工具來安排腳本,就像之前的答案一樣,謝謝

您可以嘗試simple_scheduler

from simple_scheduler.event import event_scheduler
event_scheduler.timezones()
TZ = "Asia/Kolkata"
WHEN = ["mon|10:00", "tue|11:30", "wed|14:00"]
def target(a, b=1, *args, **kwargs):
    print(a, b, args, kwargs)

event_scheduler.add_job(target = target,
                        args = (0,), # don't forget "," for single arguments
                        kwargs = {"b":2},
                        when = WHEN,
                        tz = TZ)
event_scheduler.run()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM