fix: do not use lambda in a loop

This commit is contained in:
Vlad Stan 2023-06-21 14:40:28 +03:00
parent 7e2c903334
commit 322679e7c5
2 changed files with 13 additions and 3 deletions

View file

@ -1,7 +1,9 @@
import time import time
from .event import Event from .event import Event
from .key import PrivateKey from .key import PrivateKey
def zero_bits(b: int) -> int: def zero_bits(b: int) -> int:
n = 0 n = 0

View file

@ -2,7 +2,9 @@ import json
import time import time
from queue import Queue from queue import Queue
from threading import Lock from threading import Lock
from websocket import WebSocketApp from websocket import WebSocketApp
from .event import Event from .event import Event
from .filter import Filters from .filter import Filters
from .message_pool import MessagePool from .message_pool import MessagePool
@ -45,6 +47,7 @@ class Relay:
self.queue = Queue() self.queue = Queue()
def connect(self, ssl_options: dict = None, proxy: dict = None): def connect(self, ssl_options: dict = None, proxy: dict = None):
print("### relay.connect", self.url)
self.ws = WebSocketApp( self.ws = WebSocketApp(
self.url, self.url,
on_open=self._on_open, on_open=self._on_open,
@ -81,24 +84,29 @@ class Relay:
@property @property
def ping(self): def ping(self):
print("### ping: ", self.url)
ping_ms = int((self.ws.last_pong_tm - self.ws.last_ping_tm) * 1000) ping_ms = int((self.ws.last_pong_tm - self.ws.last_ping_tm) * 1000)
return ping_ms if self.connected and ping_ms > 0 else 0 return ping_ms if self.connected and ping_ms > 0 else 0
def publish(self, message: str): def publish(self, message: str):
self.queue.put(message) self.queue.put(message)
def queue_worker(self, shutdown): def queue_worker(self):
print("#### IN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", self.url)
while True: while True:
if self.connected: if self.connected:
try: try:
message = self.queue.get(timeout=1) message = self.queue.get(timeout=1)
print("#### queue_worker", message)
self.num_sent_events += 1 self.num_sent_events += 1
self.ws.send(message) self.ws.send(message)
except: except Exception as e:
if shutdown(): if self.shutdown:
print("#### !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! e [", e, self.url, self.shutdown," ]###")
break break
else: else:
time.sleep(0.1) time.sleep(0.1)
print("#### OUT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", self.url)
def add_subscription(self, id, filters: Filters): def add_subscription(self, id, filters: Filters):
with self.lock: with self.lock: