close session and exit

I am using this example:

market_price_edpgw_service_discovery.py 

I only need one latest value for a RIC and added the option Streaming: False

I also want to close the socket and exit the program. Is there a Flag that I can set to do that?

Best Answer

  • Hello @kshishir

    One possible way is to

    1. comment try .. except KeyboardInterrupt:

        '''
        try:
        ..
        except KeyboardInterrupt:
            session1.disconnect()
            if hotstandby:
                session2.disconnect()
        '''

    2. In _process_message(self, message_json) method, check if the application receives data, disconnect and exit program

                if message_type == "Refresh":
                if 'Domain' in message_json:
                    message_domain = message_json['Domain']
                    if message_domain == "Login":
                        self._process_login_response(message_json)
                #Add the following code for Data Refresh Message
                else:
                    print("Receive Data. Disconnect and Exit Program")
                    session1.disconnect()
                    if hotstandby:
                        session2.disconnect()
                    sys.exit(0)

Answers

  • Hello @kshishir

    You can set "Streaming" parameter in the JSON request message to False (boolean value) to get one latest value for a RIC like an example below:

            mp_req_json = {
                'ID': 2,
                'Key': {
                    'Name': ric_name,
                    'Service': service,
                },
                "Streaming": False
            }


    The application run forever without any flag:

        try:
            while True:
                  ....

    If you would like to close the program, just press Ctrl+C, then the following code lines are called to close websocket and exit the program:

        except KeyboardInterrupt:
            session1.disconnect()
            if hotstandby:
                session2.disconnect()
  • Thanks you!

    Is there a way to just run the app once, get the latest values and exit without having to press Ctrl + C?


  • Hello @kshishir

    If you need only a snapshot of latest real-time Market Price values you may consider Refinitiv's Knowledge API (TRKD API). The TRKD API delivers Refinitiv information and contents in a request-response scenario via web services using SOAP, XML and HTTP REST/JSON protocols.

    TRKD has the Quote Service that provides a snapshot real-time quote/quote chain data for consumers. Please see more detail regarding the TRKD Quote service in this article.

    You can find more detail regarding TRKD API in TRKD official web site.

  • Thank you Wasin. This is also helpful. Is there any difference in data received from TKDR and Elektron Real Time?

  • Thank you Wasin. This is also helpful. Is there any difference in data received from TKDR and Elektron Real Time?