Index: minerutil/RPCProtocol.py =================================================================== --- minerutil/RPCProtocol.py (revision 112) +++ minerutil/RPCProtocol.py (working copy) @@ -374,12 +374,18 @@ def longPollThread(self): connection = None last_url = None + times = [] while not self.disconnected: - sleep(1) + # limit to 15 in the last 15 seconds + times.append(reactor.seconds()) + if len(times) > 15: + time_15_ago = times.pop(0) + sleep(max(0, min(1, time_15_ago + 15 - reactor.seconds()))) url = self.longPollURL if url is None: #inform miner that long polling is not active reactor.callFromThread(self.runCallback, 'longpoll', False) + sleep(1) else: reactor.callFromThread(self.runCallback, 'longpoll', True) host = self.host @@ -402,9 +408,11 @@ last_url = self.longPollURL except NotAuthorized: self.log('Long poll: Wrong username or password') + sleep(1) except ServerMessage as e: self.log('Long poll: ' + str(e)) + sleep(1) except (IOError, httplib.HTTPException, ValueError): self.log('Long poll exception:') traceback.print_exc() - \ No newline at end of file + sleep(1)