簡體   English   中英

Windows Task Scheduler終止python腳本,操作碼2

[英]Windows task scheduler terminates python script, opcode 2

我有一個設計為“永遠”運行的Python腳本,在這種情況下,該腳本將一直持續到每天晚上午夜25分之后的下一次計划重啟。

它要做的是檢查時間,然后等待下一個完整小時。 每小時,它將解析網頁中的一些數據,將其存儲在數據庫中,然后將電子郵件發送給外部合作伙伴。

它使用Windows Task Scheduler在系統啟動時啟動。

它已經運行了幾個月,直到上周日的午夜。 計算機照常在0:25重新啟動。 此后,日志顯示腳本已啟動,然后立即返回操作碼2終止。絕對沒有什么能引起這種變化的了,除非是某種Windows更新。

有什么想法會導致這種行為嗎?

這是一個偽代碼,除去了所有分心的情況,該偽代碼將在第一次運行時顯示該腳本:

scriptRunning = True
timeoutDelay = -1

def getTimeoutDelay(lastFetchTime):
    # calculate and return timeout delay in seconds
    delay = (60 - int(lastFetchTime.strftime("%M"))) * 60 - int(lastFetchTime.strftime("%S"))
    return delay
# end def


while scriptRunning:
    if timeoutDelay > -1:
        #Do the magic
        pass

    lastFetchTime = datetime.now()
    timeoutDelay = getTimeoutDelay(lastFetchTime)

#endwhile scriptRunning

如果我從命令行手動啟動腳本,該腳本將按設計運行。

您可以將文件放在Startup文件夾中,該文件夾位於

%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs

這是通常的位置。 您也可以在Windows > All Programs > Startup找到它

或者,您可以使用cmd命令創建任務來完成您想要的特定任務,例如,可以在腳本所在的文件夾中的cmd提示符下運行此任務

schtasks /create /TN "<name of task>" /SC ONLOGON /TR "%cd%\script.py" /Delay 0001:00

暫無
暫無

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

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