我需要編寫一段Python代碼以便每小時一分鐘重複一次交易算法。我嘗試的所有解決方案(例如Sleep())都會計算機器時間,這不是我想要的。Python每小時第5分鐘重複一次算法
我需要保持呼叫之間的狀態......我希望算法每隔5分鐘運行一次(例如14:00; 14:05; 14:10; 14:15 ......) 。該算法(重新獲取數據並清理數據)本身需要大約12秒才能執行。如果計算機被暫停,我將跳過迭代。
我需要編寫一段Python代碼以便每小時一分鐘重複一次交易算法。我嘗試的所有解決方案(例如Sleep())都會計算機器時間,這不是我想要的。Python每小時第5分鐘重複一次算法
我需要保持呼叫之間的狀態......我希望算法每隔5分鐘運行一次(例如14:00; 14:05; 14:10; 14:15 ......) 。該算法(重新獲取數據並清理數據)本身需要大約12秒才能執行。如果計算機被暫停,我將跳過迭代。
編輯
根據您的評論:「我希望算法的方式運行每5分鐘(例如14:00; 14:05; 14:10; 14:15 .... ..)。」
使用datetime和無限循環:
import time
import datetime
while True:
if datetime.datetime.now().minute % 5 == 0:
#do algorithm
time.sleep(60)
此解決方案正在工作,但仍存在問題,該算法將在第五分鐘的整個持續時間內循環,有沒有辦法只執行一次? –
另一件事,有沒有辦法停止循環,而不關閉consolle? –
爲了避免您的第一個問題,我在每種情況下都添加了'time.sleep(60)' – mvelay
,如果你在Linux環境中工作,你可以使用一個cron作業。通過
crontab -e
打開的cron選項卡下面將開始一個python腳本cronjob.py一個小時的每第5分鐘:
5 * * * * python /path/to/script/cronjob.py
編輯:既然指定了「OP希望算法的方式運行,每5分鐘「:
*/5 * * * * python /path/to/script/cronjob.py
import time
while True:
time.sleep(300 - time.time() % 300)
crunch_numbers()
crunch_numbers()
上調用5分鐘邊界由定義time.time()
時鐘。
爲什麼不使用cron? –
相關:[在Python中每x秒重複執行一次函數的最佳方式是什麼?](http://stackoverflow.com/a/25251804/4279) – jfs