私はAPIを使用して毎分のAPIを使ってデータを収集しようとしていますが、これは60秒間停止するループを使用しています。いくつかのトラブル。データを収集してdatetime.sleep()を使用するときのタイムラグ
たとえば、12:00
に請願書を送信すると、11:59
のデータが届きますが、データは12:00
になります。
from iqoptionapi.api import IQOptionAPI
from datetime import datetime
import time
candles = None
contador = 1
while True:
if candles is None:
api = IQOptionAPI("iqoption.com", "user", "pass") # Data for conection
api.connect()
api.getcandles(1,1) # (id_active, time)
candles = api.candles.candles_data # List with candles
print ("Try....\n")
else:
print ("Candle petition:", contador, "-", datetime.now(), "\n")
api.getcandles(1, 1)
candles = api.candles.candles_data
print (candles, "\n")
print ("First list:", datetime.fromtimestamp(candles[0][0]),
"Second list:", datetime.fromtimestamp(candles[1][0]), "\n")
contador += 1
time.sleep(60)
、これらは私の結果、次のとおりです:
これは私のコードで私はtime.sleep()
使用する場合 にのみ発生し、遅延、それは私が
time.sleep()
機能
の内側に入れ秒に比例しています
Candle petition: 2 - 2017-01-25 10:14:05.554242
[[1485360784, 1073590, 1073600, 1073600, 1073590], [1485360785,
1073600, 1073595, 1073600, 1073595]]
First list: 2017-01-25 10:13:04 Second list: 2017-01-25 10:13:05
何が起こっていますか?なぜ遅延?
時間実行の実際の量は、中断を何要求されます。望みの時間が過ぎ去るまで(おそらく各呼び出しの間に数秒間スリープする)、 'datetime.now()'を繰り返し呼び出すループで呼び出しを置き換えることで、より正確に行うことができます。 – martineau