SIENTIAPDE-1445

SIENTIAPDE-1445 Add PI Web API configuration to .env.example and enhance worker setup

- Introduced new environment variables for PI Web API configuration in .env.example.
- Updated prepare_worker.py to utilize a camelCase to kebab-case conversion function for queue naming.
- Enhanced logging in prepare_worker to provide better insights during worker preparation.
- Adjusted execution counts in tests.ipynb for improved notebook state management.
This commit is contained in:
vitor-aignosi
2025-12-17 17:02:06 -03:00
parent 034e0b2520
commit e61cb38b5b
4 changed files with 69 additions and 5 deletions

View File

@@ -5,6 +5,10 @@ from typing import Any
from temporalio.client import Client
from temporalio.worker import PollerBehaviorAutoscaling, Worker
from sientia_do.observability.logger import Logger
import re
parameters = [
('MAX_CONCURRENT_WORKFLOW_TASKS', '200'),
('MAX_CONCURRENT_ACTIVITIES', '200'),
@@ -18,16 +22,25 @@ parameters = [
('ACTIVITY_POLLER_BEHAVIUR_MAXIMUM', '200'),
]
import re
def camel_to_kebab(text: str) -> str:
"""Convert camelCase or PascalCase to kebab-case."""
text = re.sub('(.)([A-Z][a-z]+)', r'\1-\2', text)
text = re.sub('([a-z0-9])([A-Z])', r'\1-\2', text)
return text.lower()
def prepare_worker(
main_workflow: type,
other_workflows: Sequence[type],
activities: Sequence[Any],
temporal_client: Client,
logger: Logger,
) -> Worker:
main_workflow_name = main_workflow.__name__.upper()
queue_name = f'{main_workflow_name.lower().replace("_", "-")}-queue'
queue_name = f'{camel_to_kebab(main_workflow.__name__)}-queue'
local_workflow_parameters = {}
@@ -36,6 +49,8 @@ def prepare_worker(
os.getenv(main_workflow_name + '_' + parameter[0], parameter[1])
)
logger.info(f'Preparing worker for {main_workflow_name} with queue {queue_name}')
return Worker(
temporal_client,
task_queue=queue_name,

View File

@@ -140,6 +140,7 @@ async def main():
activities.write_metrics,
activities.store_data_package,
],
logger=logger,
),
prepare_worker(
temporal_client=temporal_client,
@@ -154,6 +155,7 @@ async def main():
activities.write_metrics,
activities.store_data_package,
],
logger=logger,
),
]