Compare commits
	
		
			1 Commits
		
	
	
		
			1.0.5
			...
			010dafc655
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 010dafc655 | 
@@ -65,6 +65,9 @@ class Application(DiscordBotApplicationABC):
 | 
				
			|||||||
        self._is_stopping = True
 | 
					        self._is_stopping = True
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self._logger.info(__name__, f"Try to stop {DiscordBotService.__name__}")
 | 
					            self._logger.info(__name__, f"Try to stop {DiscordBotService.__name__}")
 | 
				
			||||||
 | 
					            if self._feature_flags.get_flag(FeatureFlagsEnum.api_module):
 | 
				
			||||||
 | 
					                self._api.stop()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            await self._bot.close()
 | 
					            await self._bot.close()
 | 
				
			||||||
            self._logger.info(__name__, f"Stopped {DiscordBotService.__name__}")
 | 
					            self._logger.info(__name__, f"Stopped {DiscordBotService.__name__}")
 | 
				
			||||||
        except Exception as e:
 | 
					        except Exception as e:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,9 @@
 | 
				
			|||||||
 | 
					import socket
 | 
				
			||||||
import sys
 | 
					import sys
 | 
				
			||||||
import textwrap
 | 
					import textwrap
 | 
				
			||||||
import uuid
 | 
					import uuid
 | 
				
			||||||
from functools import partial
 | 
					from functools import partial
 | 
				
			||||||
from typing import Union
 | 
					from typing import Union, Optional
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import eventlet
 | 
					import eventlet
 | 
				
			||||||
from cpl_core.dependency_injection import ServiceProviderABC
 | 
					from cpl_core.dependency_injection import ServiceProviderABC
 | 
				
			||||||
@@ -60,6 +61,8 @@ class Api(Flask):
 | 
				
			|||||||
        self._socketio.on_event("connect", self.on_connect)
 | 
					        self._socketio.on_event("connect", self.on_connect)
 | 
				
			||||||
        self._socketio.on_event("disconnect", self.on_disconnect)
 | 
					        self._socketio.on_event("disconnect", self.on_disconnect)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self._socket: Optional[socket] = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self._requests = {}
 | 
					        self._requests = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @staticmethod
 | 
					    @staticmethod
 | 
				
			||||||
@@ -152,7 +155,14 @@ class Api(Flask):
 | 
				
			|||||||
        # from waitress import serve
 | 
					        # from waitress import serve
 | 
				
			||||||
        # https://docs.pylonsproject.org/projects/waitress/en/stable/arguments.html
 | 
					        # https://docs.pylonsproject.org/projects/waitress/en/stable/arguments.html
 | 
				
			||||||
        # serve(self, host=self._apt_settings.host, port=self._apt_settings.port, threads=10, connection_limit=1000, channel_timeout=10)
 | 
					        # serve(self, host=self._apt_settings.host, port=self._apt_settings.port, threads=10, connection_limit=1000, channel_timeout=10)
 | 
				
			||||||
        wsgi.server(eventlet.listen((self._api_settings.host, self._api_settings.port)), self, log_output=False)
 | 
					        self._socket = eventlet.listen((self._api_settings.host, self._api_settings.port))
 | 
				
			||||||
 | 
					        wsgi.server(self._socket, self, log_output=False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def stop(self):
 | 
				
			||||||
 | 
					        if self._socket is None:
 | 
				
			||||||
 | 
					            return
 | 
				
			||||||
 | 
					        self._socket.shutdown(socket.SHUT_RDWR)
 | 
				
			||||||
 | 
					        self._socket.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def on_connect(self):
 | 
					    def on_connect(self):
 | 
				
			||||||
        self._logger.info(__name__, f"Client connected")
 | 
					        self._logger.info(__name__, f"Client connected")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,3 +17,10 @@ class ApiThread(threading.Thread):
 | 
				
			|||||||
            self._api.start()
 | 
					            self._api.start()
 | 
				
			||||||
        except Exception as e:
 | 
					        except Exception as e:
 | 
				
			||||||
            self._logger.error(__name__, "Start failed", e)
 | 
					            self._logger.error(__name__, "Start failed", e)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def stop(self):
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            self._logger.trace(__name__, f"Try to stop {type(self._api).__name__}")
 | 
				
			||||||
 | 
					            self._api.stop()
 | 
				
			||||||
 | 
					        except Exception as e:
 | 
				
			||||||
 | 
					            self._logger.error(__name__, "Start stop", e)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user