Changeset View
Changeset View
Standalone View
Standalone View
swh/provenance/api/server.py
Show First 20 Lines • Show All 565 Lines • ▼ Show 20 Lines | def start(self) -> None: | ||||
except queue.Empty: | except queue.Empty: | ||||
LOGGER.error( | LOGGER.error( | ||||
"Could not initialize worker %s. Leaving...", worker.name | "Could not initialize worker %s. Leaving...", worker.name | ||||
) | ) | ||||
self.stop() | self.stop() | ||||
return | return | ||||
LOGGER.info("Start serving") | LOGGER.info("Start serving") | ||||
def stop(self) -> None: | def stop(self, terminate_after=None) -> None: | ||||
if self._running: | if self._running: | ||||
for worker in self._workers: | for worker in self._workers: | ||||
worker.command.put(ServerCommand.TERMINATE) | worker.command.put(ServerCommand.TERMINATE) | ||||
for worker in self._workers: | for worker in self._workers: | ||||
worker.join() | worker.join(terminate_after) | ||||
if worker.is_alive(): | |||||
worker.terminate() | |||||
LOGGER.info("Stop serving") | LOGGER.info("Stop serving") | ||||
self._running = False | self._running = False | ||||
@staticmethod | @staticmethod | ||||
def get_binding_keys(exchange: str, range: int) -> Generator[str, None, None]: | def get_binding_keys(exchange: str, range: int) -> Generator[str, None, None]: | ||||
for meth_name, relation in ProvenanceStorageRabbitMQServer.get_meth_names( | for meth_name, relation in ProvenanceStorageRabbitMQServer.get_meth_names( | ||||
exchange | exchange | ||||
): | ): | ||||
▲ Show 20 Lines • Show All 149 Lines • Show Last 20 Lines |