From 28512009c9444ed07ca1cb0911e008d2ad224be1 Mon Sep 17 00:00:00 2001
From: Georgiy Eterevskiy <goshik_e@mail.ru>
Date: Tue, 12 Sep 2023 17:12:00 +0300
Subject: [PATCH] Add extension registration periodic

---
 perxis/extensions/bootstrap.py | 13 +++++++++----
 requirements.txt               |  1 +
 setup.py                       |  2 +-
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/perxis/extensions/bootstrap.py b/perxis/extensions/bootstrap.py
index 64c3569..8aa60db 100644
--- a/perxis/extensions/bootstrap.py
+++ b/perxis/extensions/bootstrap.py
@@ -1,8 +1,8 @@
+import aiocron
 import grpc
 import logging
 
 from concurrent import futures
-from perxis.extensions import manager_pb2
 from perxis.collections import collections_pb2_grpc
 from perxis.environments import environments_pb2_grpc
 from perxis.roles import roles_pb2_grpc
@@ -22,6 +22,13 @@ def bootstrap(
     interceptor = header_adder_interceptor(
         'x-perxis-access', 'system'
     )
+
+    @aiocron.crontab('* * * * *', start=False)
+    def register_extension():
+        ext_manager_stub.RegisterExtensions(manager_pb2.RegisterExtensionsRequest(
+            extensions=[ext_descriptor]
+        ))
+
     with grpc.insecure_channel(ext_manager_host) as extensions_manager_channel:
         intercept_channel_extensions_manager_channel = grpc.intercept_channel(extensions_manager_channel, interceptor)
 
@@ -43,9 +50,7 @@ def bootstrap(
         #                 f"Изменилась версия расширения {ext_descriptor.extension} ({ext.version} -> {ext_descriptor.version})"
         #             )
 
-        ext_manager_stub.RegisterExtensions(manager_pb2.RegisterExtensionsRequest(
-            extensions=[ext_descriptor]
-        ))
+        register_extension()
 
         logger.info(f"Расширение {ext_descriptor.extension} зарегистрировано в perxis")
 
diff --git a/requirements.txt b/requirements.txt
index 266a39a..741861e 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1,4 @@
+aiocron==1.8
 certifi==2023.7.22
 chardet==5.2.0
 charset-normalizer==3.2.0
diff --git a/setup.py b/setup.py
index f3b199e..9a53f23 100644
--- a/setup.py
+++ b/setup.py
@@ -14,7 +14,7 @@ def load_requirements():
 
 setup(
     name='perxis',
-    version='1.0.1',
+    version='1.0.2',
     description='Perxis python client',
     long_description=long_description,
     long_description_content_type='text/markdown',
-- 
GitLab