2017-08-20 98 views
-1

有很多關於它的問題,但我還沒搞清楚。
我有一些代碼上傳到服務器,以全天候運行,而這個代碼將基本上是這樣的:把一個定時器放在while循環中的函數裏

while True: 
    variable1 = function1() 
    variable2 = function2() 
    variable3 = function3() 

所以我們可以說我想要做的variable2 = function2()每隔一小時左右一次,性能(我不明白的不多,但我認爲它會做很好的把一個定時器就可以了)

我不能用它time.sleep()因爲代碼必須繼續下去
我提到的服務器因爲我不知道使用系統定時器的答案是否適用於它,我仍然在學習如何去做。
忘了說我使用Python 2.7

+0

你是問關於線程? –

+0

@ whackamadoodle3000我不知道它是什麼,讓我檢查 – Tax

+0

你想要什麼時間到每個函數結束? –

回答

1

不知道這是否是你想要的,但在這裏是運行三個功能用三個不同的週期性單迴路:

import time 

t1 = t2 = t3 = 0 

period1 = 1.0 # do function1() every second 
period2 = 3600.0 # do function2() every hour 
period3 = 60.0 # do function3() every minute 

sleep_seconds = 0.1 # or whatever makes sense 

while True: 

    t = time.time() 

    if t - t1 >= period1: 
     variable1 = function1() 
     t1 = time.time() 

    if t - t2 >= period2: 
     variable2 = function2() 
     t2 = time.time() 

    if t - t3 >= period3: 
     variable3 = function3() 
     t3 = time.time() 


    time.sleep(sleep_seconds) 
+0

這可能可行。所以隨着系統時間增加,是嗎?如果它是從服務器運行的話,會不會有問題(我真的不知道服務器的工作原理) – Tax

+0

'time.time()'返回從香檳瓶塞在倫敦和約翰內斯堡迎來新年的時間過去的秒數1970年。我可以預見到一個問題的唯一情況是,如果服務器的時鐘由於某些奇怪的原因(例如,應該在幾小時之前的幾個小時)設置顯着錯誤,並且它在運行時通過時間服務器進行糾正。 – jez

+0

它應該工作得很好,這是我很少嘗試只保存一些請求。謝謝! – Tax

相關問題