Skip to content
Snippets Groups Projects

AIO

Merged Eterevskiy Georgiy requested to merge feature/add_periodic_extension_registration into master
2 files
+ 23
10
Compare changes
  • Side-by-side
  • Inline
Files
2
import asyncio
import aiocron
import grpc
import logging
@@ -23,6 +25,8 @@ def bootstrap(
'x-perxis-access', 'system'
)
loop = asyncio.get_event_loop()
@aiocron.crontab('* * * * *', start=False)
def register_extension():
ext_manager_stub.RegisterExtensions(manager_pb2.RegisterExtensionsRequest(
@@ -30,7 +34,7 @@ def bootstrap(
))
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)
ext_manager_stub = manager_pb2_grpc.ExtensionManagerStub(intercept_channel_extensions_manager_channel)
@@ -53,7 +57,7 @@ def bootstrap(
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)
collections_stub = collections_pb2_grpc.CollectionsStub(intercepted_content_channel)
@@ -61,12 +65,21 @@ def bootstrap(
clients_stub = clients_pb2_grpc.ClientsStub(intercepted_content_channel)
environments_stub = environments_pb2_grpc.EnvironmentsStub(intercepted_content_channel)
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
extension_pb2_grpc.add_ExtensionServicer_to_server(
servicer_cls(
collections_stub, environments_stub, roles_stub, clients_stub
), server
server = grpc.aio.server(futures.ThreadPoolExecutor(max_workers=10))
loop.create_task(
extension_pb2_grpc.add_ExtensionServicer_to_server(
servicer_cls(
collections_stub, environments_stub, roles_stub, clients_stub
), server
)
)
server.add_insecure_port("[::]:50051")
server.start()
server.wait_for_termination()
loop.create_task(server.start())
loop.create_task(server.wait_for_termination())
try:
loop.run_forever()
finally:
loop.close()
loop.stop()
logging.info('Successfully shutdown service')
Loading