Skip to content
Snippets Groups Projects
Commit b9dae3d1 authored by Georgiy Eterevskiy's avatar Georgiy Eterevskiy
Browse files

AIO

parent 42bcde23
No related branches found
No related tags found
No related merge requests found
import asyncio
import aiocron import aiocron
import grpc import grpc
import logging import logging
...@@ -23,6 +25,8 @@ def bootstrap( ...@@ -23,6 +25,8 @@ def bootstrap(
'x-perxis-access', 'system' 'x-perxis-access', 'system'
) )
loop = asyncio.get_event_loop()
@aiocron.crontab('* * * * *', start=False) @aiocron.crontab('* * * * *', start=False)
def register_extension(): def register_extension():
ext_manager_stub.RegisterExtensions(manager_pb2.RegisterExtensionsRequest( ext_manager_stub.RegisterExtensions(manager_pb2.RegisterExtensionsRequest(
...@@ -30,7 +34,7 @@ def bootstrap( ...@@ -30,7 +34,7 @@ def bootstrap(
)) ))
logger.info(f"Расширение {ext_descriptor.extension} зарегистрировано в perxis") logger.info(f"Расширение {ext_descriptor.extension} зарегистрировано в perxis")
with grpc.insecure_channel(ext_manager_host) as extensions_manager_channel: with grpc.aio.insecure_channel(ext_manager_host) as extensions_manager_channel:
intercept_channel_extensions_manager_channel = grpc.intercept_channel(extensions_manager_channel, interceptor) intercept_channel_extensions_manager_channel = grpc.intercept_channel(extensions_manager_channel, interceptor)
ext_manager_stub = manager_pb2_grpc.ExtensionManagerStub(intercept_channel_extensions_manager_channel) ext_manager_stub = manager_pb2_grpc.ExtensionManagerStub(intercept_channel_extensions_manager_channel)
...@@ -53,7 +57,7 @@ def bootstrap( ...@@ -53,7 +57,7 @@ def bootstrap(
register_extension.start() register_extension.start()
with grpc.insecure_channel(content_host) as content_channel: with grpc.aio.insecure_channel(content_host) as content_channel:
intercepted_content_channel = grpc.intercept_channel(content_channel, interceptor) intercepted_content_channel = grpc.intercept_channel(content_channel, interceptor)
collections_stub = collections_pb2_grpc.CollectionsStub(intercepted_content_channel) collections_stub = collections_pb2_grpc.CollectionsStub(intercepted_content_channel)
...@@ -61,12 +65,21 @@ def bootstrap( ...@@ -61,12 +65,21 @@ def bootstrap(
clients_stub = clients_pb2_grpc.ClientsStub(intercepted_content_channel) clients_stub = clients_pb2_grpc.ClientsStub(intercepted_content_channel)
environments_stub = environments_pb2_grpc.EnvironmentsStub(intercepted_content_channel) environments_stub = environments_pb2_grpc.EnvironmentsStub(intercepted_content_channel)
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) server = grpc.aio.server(futures.ThreadPoolExecutor(max_workers=10))
loop.create_task(
extension_pb2_grpc.add_ExtensionServicer_to_server( extension_pb2_grpc.add_ExtensionServicer_to_server(
servicer_cls( servicer_cls(
collections_stub, environments_stub, roles_stub, clients_stub collections_stub, environments_stub, roles_stub, clients_stub
), server ), server
) )
)
server.add_insecure_port("[::]:50051") server.add_insecure_port("[::]:50051")
server.start() loop.create_task(server.start())
server.wait_for_termination() loop.create_task(server.wait_for_termination())
try:
loop.run_forever()
finally:
loop.close()
loop.stop()
logging.info('Successfully shutdown service')
...@@ -14,7 +14,7 @@ def load_requirements(): ...@@ -14,7 +14,7 @@ def load_requirements():
setup( setup(
name='perxis', name='perxis',
version='1.0.5', version='1.0.6',
description='Perxis python client', description='Perxis python client',
long_description=long_description, long_description=long_description,
long_description_content_type='text/markdown', long_description_content_type='text/markdown',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment