事件を聞いて,それは,何があるときに戻ってくるWebSocket
読み取れるデータや並行作業,例えばexchange.Go()
, HttpQuery_Go()
完了しました.
返されたオブジェクトが null ではない場合,Event
返信内容に含まれるのはイベントトリガータイプです.例えば,次の返信値構造:
{"Seq":1,"Event":"Exchange_GetTrades","ThreadId":0,"Index":3,"Nano":1682068771309583400}
オブジェクト
イベントループ イベントループ (タイムアウト)
パラメータtimeout
パラメーターは,このパラメータを表示します.timeout
イベントが0に設定されている場合,戻る前に発生するのを待つ. イベントが0より大きい場合は,タイムアウトを待つように設定し, 0未満の場合,最も最近のイベントをすぐに返します.
タイムアウト
偽り
番号
function main() {
var routine_getTicker = exchange.Go("GetTicker")
var routine_getDepth = exchange.Go("GetDepth")
var routine_getTrades = exchange.Go("GetTrades")
// Sleep(2000), if the Sleep statement is used here, it will cause the subsequent EventLoop function to miss the previous events, because after waiting for 2 seconds, the concurrent function has received the data, and the subsequent EventLoop listening mechanism started, it misses these events.
// These events will not be missed unless EventLoop(-1) is called at the beginning of the first line of code to first initialize the EventLoop's listening mechanism.
// Log("GetDepth:", routine_getDepth.wait()) If the wait function is called in advance to retrieve the result of a concurrent call to the GetDepth function, the event that the GetDepth function receives the result of the request will not be returned in the EventLoop function.
var ts1 = new Date().getTime()
var ret1 = EventLoop(0)
var ts2 = new Date().getTime()
var ret2 = EventLoop(0)
var ts3 = new Date().getTime()
var ret3 = EventLoop(0)
Log("The first concurrent task completed was:", _D(ts1), ret1)
Log("The second concurrent task completed was:", _D(ts2), ret2)
Log("The third concurrent task completed was:", _D(ts3), ret3)
Log("GetTicker:", routine_getTicker.wait())
Log("GetDepth:", routine_getDepth.wait())
Log("GetTrades:", routine_getTrades.wait())
}
import time
def main():
routine_getTicker = exchange.Go("GetTicker")
routine_getDepth = exchange.Go("GetDepth")
routine_getTrades = exchange.Go("GetTrades")
ts1 = time.time()
ret1 = EventLoop(0)
ts2 = time.time()
ret2 = EventLoop(0)
ts3 = time.time()
ret3 = EventLoop(0)
Log("The first concurrent task completed was:", _D(ts1), ret1)
Log("The second concurrent task completed was:", _D(ts2), ret2)
Log("The third concurrent task completed was:", _D(ts3), ret3)
Log("GetTicker:", routine_getTicker.wait())
Log("GetDepth:", routine_getDepth.wait())
Log("GetTrades:", routine_getTrades.wait())
void main() {
auto routine_getTicker = exchange.Go("GetTicker");
auto routine_getDepth = exchange.Go("GetDepth");
auto routine_getTrades = exchange.Go("GetTrades");
auto ts1 = Unix() * 1000;
auto ret1 = EventLoop(0);
auto ts2 = Unix() * 1000;
auto ret2 = EventLoop(0);
auto ts3 = Unix() * 1000;
auto ret3 = EventLoop(0);
Log("The first concurrent task completed was:", _D(ts1), ret1);
Log("The second concurrent task completed was:", _D(ts2), ret2);
Log("The third concurrent task completed was:", _D(ts3), ret3);
Ticker ticker;
Depth depth;
Trades trades;
routine_getTicker.wait(ticker);
routine_getDepth.wait(depth);
routine_getTrades.wait(trades);
Log("GetTicker:", ticker);
Log("GetDepth:", depth);
Log("GetTrades:", trades);
}
初の電話はEventLoop()
実行される場合,最初の動作が実行される場合,EventLoop()
イベントコールバックが開始された後,以前のイベントを逃します. 基礎システムでは,最大500回のイベントコールバックをキャッシュするキュー構造を包み込みます.EventLoop()
500キャッシュの外の後のイベントコールバックは失われます.EventLoop()
基本システム WebSocket のキャッシュキューや,並行関数のキャッシュに影響しないexchange.Go()
. これらのキャッシュでは,データを取得するためにそれぞれの方法を使用する必要があります.EventLoop()
復元される前に取得されたデータのための機能EventLoop()
主な目的は,EventLoop()
戦略層に新しいネットワークデータが基盤システムに受信されたことを通知する機能です. 戦略全体がイベントによって動かされます.EventLoop()
WebSocket 接続,WebSocket で作成されたオブジェクトなどexchange.Go()
データを集めようとしますEventLoop()
機能はライブ取引のみをサポートします.
メイン機能から呼び出されるとメインスレッドのイベントを聞くmain()
戦略を策定するJavaScript
言語,__Thread()
実行関数で呼び出せるスレッドを作成し,現在のスレッドのイベントを聞く.
{@fun/Global/Dial Dial}, {@fun/Trade/exchange.Go exchange.Go}, {@fun/Global/HttpQuery_Go HttpQuery_Go}, {@fun/Global/HttpQuery_Go HttpQuery_Go}, {@fun/Trade/exchange.Go exchange.Go}, {@fun/Global/HttpQuery_Go HttpQuery_Go}, {@fun/Global/HttpQuery_Go HttpQuery_Go}, {@fun/Global/HttpQuery_Go HttpQuery_Go}, {@fun/Trade/exchange.
UUID __ 仕える