Navigation

    SmartAPI Forum
    • Register
    • Login
    • Search
    • Categories
    • Popular
    • Groups
    • FAQs
    • API Docs

    HeartBeats Failed

    General Discussion
    5
    40
    291
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • punit
      punit @Surya 1 last edited by

      @rajanprabu , At what time the heartbeat failed for you?

      S 1 Reply Last reply Reply Quote 0
      • S
        Surya 1 @punit last edited by

        @dheepi

        I run a cron job to start my algo because I live in a different time zone. Program started at 9:15 and ran fine till 10:33 then it gave heartbeats failed message.

        Then I tried manually to run and its started appearing randomly after some time.

        punit 1 Reply Last reply Reply Quote 0
        • punit
          punit @Surya 1 last edited by

          @rajanprabu Very similar to what happened to me today.

          -> Login (Generate session) @ 7AM - OK
          -> When the cron started Websocket at 9.15 AM, the token got expired
          -> Then I generated new token at 11:12 and started websocket streaming again - OK
          -> But the streaming ended at 14:09 got stopped - I did not check the heartbeat, but probably that is the reason

          Looks like the token i getting expired after sometime. say 2.5 hrs by estimate.

          I raised this with @Bhaveshsjain @admin today morning . lets wait for the analysis.

          PS: All my jobs are scheduled in a scheduler

          A 1 Reply Last reply Reply Quote 0
          • A
            admin @punit last edited by

            Hi @Ashok @rajanprabu , we are reviewing this.

            A 1 Reply Last reply Reply Quote 0
            • A
              admin @admin last edited by

              @rajanprabu @Ashok We have connected the websocket today morning and till now it's working fine. If we get a disconnection before 3.30, will identify and resolve the issue.

              S 1 Reply Last reply Reply Quote 0
              • S
                Surya 1 @admin last edited by

                @admin

                I have tested today and I had the same error. Please find the test script below. Im using threaded=True

                from smartapi import WebSocket 
                import json
                import datetime
                import time
                
                with open('AB/ab_user.json') as f:
                    data = json.load(f)
                client_code = data['client_code']
                
                with open('AB/ab_tokens.json') as f:
                    data = json.load(f)
                feed_token = str(data['feedToken'])
                
                token = "nse_cm|3456&nse_cm|7229&nse_cm|1594&nse_cm|3787&nse_cm|1330&nse_cm|10999&nse_cm|4717&nse_cm|13538&nse_cm|694&nse_cm|2031&nse_cm|2475&nse_cm|1394&nse_cm|11536&nse_cm|20374&nse_cm|1333&nse_cm|881&nse_cm|467&nse_cm|1348&nse_cm|10604&nse_cm|547&nse_cm|3506&nse_cm|4963&nse_cm|1660&nse_cm|17963&nse_cm|910&nse_cm|11532&nse_cm|526&nse_cm|3351&nse_cm|236&nse_cm|14977&nse_cm|21808&nse_cm|1232&nse_cm|1624&nse_cm|11723&nse_cm|5900&nse_cm|10940&nse_cm|3045&nse_cm|11287&nse_cm|11630&nse_cm|5258&nse_cm|11483&nse_cm|1922&nse_cm|3103&nse_cm|1363&nse_cm|2885&nse_cm|16675&nse_cm|317&nse_cm|15083&nse_cm|3499"
                
                ss = WebSocket(feed_token, client_code)
                
                def on_tick(ws, tick):
                    print("Ticks: {}".format(tick))
                   
                def on_connect(ws, response):
                    ws.send_request(token)
                
                def on_close(ws, code, reason):
                    ws.stop()
                
                # Assign the callbacks.
                ss.on_ticks = on_tick
                ss.on_connect = on_connect
                ss.on_close = on_close
                
                ss.connect(threaded=True)
                
                while True:
                    pass
                
                1 Reply Last reply Reply Quote 0
                • S
                  Surya 1 last edited by

                  @Ashok was it running ok for you today ?? No HeartBeats Failed message ?

                  punit 1 Reply Last reply Reply Quote 0
                  • punit
                    punit @Surya 1 last edited by punit

                    @rajanprabu my websocket worked just fine today no failures. I was seeing tick data till 15.30.
                    But I forgot to log the heartbeat message to see if there are any failures.
                    PS: I am not using threaded ticker

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      Surya 1 @punit last edited by

                      @Ashok Im also wondering if that is the root cause of the problem. But in my code I have a streamer class which emits the ticks. This I run in one thread and other things that I do in parallel using threads. This functionality is crucial.

                      I hope @admin and team had a look at it.

                      A 1 Reply Last reply Reply Quote 0
                      • A
                        admin @Surya 1 last edited by

                        Hi @rajanprabu , Hope your issue is resolved. If not, please share your contact details on api@angelbroking.com

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          Surya 1 @admin last edited by Surya 1

                          @admin

                          I have tested without running them on threads separate threads. It went well today.

                          all my troubles appear when I use

                          ss.connect(threaded=True)
                          

                          I also think this is the limitation on in unix based systems. I have modified the websocket.py to have reactor.run(installSignalHandlers=False) even one doesnt use the threaded=True.

                          In case if this helps anyone.

                          1 Reply Last reply Reply Quote 0
                          • G
                            gkmeena @Surya 1 last edited by

                            @rajanprabu hi i want data like this can you give me code?

                            S 1 Reply Last reply Reply Quote 0
                            • S
                              Surya 1 @gkmeena last edited by

                              @gkmeena

                              Which code ?

                              G 1 Reply Last reply Reply Quote 0
                              • G
                                gkmeena @Surya 1 last edited by

                                @rajanprabu
                                ![alt text](Screenshot (45).png code for this kind of output)

                                R 1 Reply Last reply Reply Quote 0
                                • R
                                  rahul4019 @gkmeena last edited by

                                  @rajanprabu @admin
                                  I am getting the heartbeat failed message.
                                  I am wondering how do you re-establish the connection?
                                  Also even after the program has ended the heartbeat failed message keeps popping up.

                                  A S 2 Replies Last reply Reply Quote 0
                                  • A
                                    admin @rahul4019 last edited by

                                    Hi @PandaTrade we will soon our web socket code we will keep you updated on this.

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      Surya 1 @rahul4019 last edited by

                                      @PandaTrade said in HeartBeats Failed:

                                      Also even after the program has ended the heartbeat failed message keeps popping up.

                                      Thats mainly because Heartbeart connection is running in separate thread. I have a parallel script running to check if there is any HB failure message. Once it find it will stop and restart the script. Of course this can be a issue if you use indicators using past data.

                                      1 Reply Last reply Reply Quote 0
                                      • R
                                        rahul4019 last edited by

                                        hi @admin
                                        have you fixed your Tickdata web socket code?
                                        To me it looks like working. Just want to confirm what are the fixes that you have done?

                                        S 1 Reply Last reply Reply Quote 0
                                        • S
                                          Surya 1 @rahul4019 last edited by

                                          @PandaTrade

                                          They released a new SDK.. But yet to try it.. will try in the evening with MCX data.

                                          R 1 Reply Last reply Reply Quote 0
                                          • R
                                            rahul4019 @Surya 1 last edited by

                                            @rajanprabu btw how do you update your sdk that you had downloaded already..
                                            Could you point me to it.

                                            R S 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post