|
1 | 1 | import asyncio |
2 | | -import threading |
| 2 | +import logging |
3 | 3 | import time |
4 | 4 | import traceback |
5 | 5 |
|
6 | | -from tornado import ioloop |
7 | 6 |
|
8 | 7 | from common import websocket |
9 | 8 | from common.logger_factory import LoggerFactory |
|
16 | 15 |
|
17 | 16 |
|
18 | 17 | class HeatBeatTask: |
19 | | - def __init__(self, ws: websocket.WebSocketApp): |
| 18 | + def __init__(self, ws: websocket.WebSocketApp, sleep_break: int,): |
20 | 19 | self.ws: websocket.WebSocketApp = ws |
21 | 20 | self.is_running = False |
22 | 21 | self.recv_heart_beat_time: float = time.time() |
23 | | - self.lock = asyncio.Lock() |
| 22 | + self.sleep_break = sleep_break |
24 | 23 |
|
25 | 24 | def set_recv_heart_beat_time(self, d: float): |
26 | 25 | self.recv_heart_beat_time = d |
27 | 26 |
|
28 | | - async def run(self): |
29 | | - if self.lock.locked(): |
30 | | - LoggerFactory.get_logger().error('locked return') |
31 | | - return |
32 | | - async with self.lock: |
| 27 | + def run(self): |
| 28 | + # asyncio.set_event_loop(self.event_loop) |
| 29 | + while True: |
| 30 | + time.sleep(self.sleep_break) |
| 31 | + if not self.is_running: |
| 32 | + continue |
| 33 | + if LoggerFactory.get_logger().isEnabledFor(logging.DEBUG): |
| 34 | + LoggerFactory.get_logger().debug('run send heartbeat') |
33 | 35 | try: |
34 | | - await asyncio.wait_for(ioloop.IOLoop.current().run_in_executor(None, self.send_heart_beat), timeout=20) |
| 36 | + # await asyncio.wait_for(asyncio.get_event_loop().run_in_executor(None, self.send_heart_beat), timeout=20) |
| 37 | + self.send_heart_beat() |
35 | 38 | except WebSocketConnectionClosedException: |
36 | 39 | try: |
37 | | - await asyncio.wait_for(ioloop.IOLoop.current().run_in_executor(None, self._close_and_on_close), timeout=20) |
| 40 | + self._close_and_on_close() |
| 41 | + # await asyncio.wait_for(asyncio.get_event_loop().run_in_executor(None, self._close_and_on_close), timeout=20) |
38 | 42 | except Exception: |
39 | 43 | LoggerFactory.get_logger().error(traceback.format_exc()) |
40 | 44 | except Exception: |
41 | 45 | LoggerFactory.get_logger().error(traceback.format_exc()) |
42 | | - self.check_recv_heart_beat_time() |
| 46 | + try: |
| 47 | + self.check_recv_heart_beat_time() |
| 48 | + except Exception: |
| 49 | + LoggerFactory.get_logger().error(traceback.format_exc()) |
43 | 50 |
|
44 | 51 | def send_heart_beat(self): |
45 | 52 | if self.is_running: |
|
0 commit comments