2016-04-13 77 views
0

我有一個Python腳本,旨在運行「永久」,在這種情況下,直到下午25分鐘每晚的下一次計劃重新啓動。Windows任務調度程序終止python腳本,操作碼2

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

它使用Windows任務計劃程序啓動系統引導。

它已經運行了幾個月,直到上週日午夜。計算機像平時一樣在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 

腳本顯示爲設計的,如果我在命令行手動啓動它來運行。

+0

請從'schtasks/query/tn YOUR_TASK_NAME/xml'顯示XML定義。 – eryksun

回答

0

你可以把文件放在文件夾Startup,位於

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

這是它通常是。您還可以在Windows > All Programs > Startup

發現它或者,您可以將您的腳本是

的文件夾中使用cmd命令來創建一個任務來完成你想要什麼具體而言,例如你可以運行這個在命令提示符
schtasks /create /TN "<name of task>" /SC ONLOGON /TR "%cd%\script.py" /Delay 0001:00 
+0

這是一個無人值守的系統。在登錄之前,腳本需要在系統啓動時啓動。調度程序可以輕鬆完成。正如我所說,在這個週末之前它已經運行了好幾個月。 –

+0

好的,你可以試試'ONSTART'標誌而不是'ONLOGON' –

+0

謝謝你的提示。當我明天回到現場時,我會嘗試。 –

相關問題