রিসোর্স লোড হচ্ছে... লোডিং...

ইভেন্টলুপ

ঘটনা শুনুন, এটা ফিরে আসে যখন কোন আছেWebSocketপাঠযোগ্য তথ্য বা সমান্তরাল কাজ যেমনঃexchange.Go(), HttpQuery_Go(), ইত্যাদি সম্পন্ন হয়।

যদি ফেরত বস্তু শূন্য মান নয়,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()ফাংশন একটি ইভেন্ট ফেরত দেয়, শুধু সব তথ্য উত্স অতিক্রম করে. উদাহরণস্বরূপ, ওয়েবসকেট সংযোগ, বস্তু দ্বারা তৈরিexchange.Go()তথ্য সংগ্রহ করার চেষ্টা করুন।EventLoop()ফাংশন শুধুমাত্র লাইভ ট্রেডিং সমর্থন করে। প্রধান ফাংশন থেকে কল করার সময় প্রধান থ্রেডে ইভেন্টগুলির জন্য শুনুনmain().JavaScriptভাষা,threading.Thread()ফাংশন একটি থ্রেড তৈরি করে, যা বর্তমান থ্রেডের ইভেন্টগুলির জন্য শুনতে থ্রেড এর এক্সিকিউশন ফাংশনেও কল করা যেতে পারে।

{@fun/Global/Dial Dial}, {@fun/Trade/exchange.Go exchange.Go}, {@fun/Global/HttpQuery_Go HttpQuery_Go}

UUID __ সার্ভ করুন