資源の読み込みに... 荷物...

イベントループ

事件を聞いて,それは,何があるときに戻ってくる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 __ 仕える