generated from coulomb/repo-seed
feat(activities): implement load_activity_definition — T14
activities.py: - init_session_factory(url): module-level async_sessionmaker init, called once from worker.py before workers start - load_activity_definition(activity_id): queries activity_definitions by UUID, returns JSON-serialisable dict; raises ApplicationError (non_retryable=True) if row not found worker.py: - reads ACTCORE_DB_URL at startup, fails fast if missing - calls init_session_factory() before connecting to Temporal Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -24,6 +24,7 @@ from temporalio.client import Client
|
||||
from temporalio.worker import Worker
|
||||
|
||||
from activity_core.activities import (
|
||||
init_session_factory,
|
||||
load_activity_definition,
|
||||
log_run,
|
||||
resolve_context,
|
||||
@@ -38,6 +39,11 @@ TASK_EXECUTION_TASK_QUEUE = "task-execution-tq"
|
||||
|
||||
|
||||
async def run() -> None:
|
||||
db_url = os.environ.get("ACTCORE_DB_URL")
|
||||
if not db_url:
|
||||
raise RuntimeError("ACTCORE_DB_URL is required")
|
||||
init_session_factory(db_url)
|
||||
|
||||
client = await Client.connect(TEMPORAL_HOST, namespace=TEMPORAL_NAMESPACE)
|
||||
|
||||
orchestrator_worker = Worker(
|
||||
|
||||
Reference in New Issue
Block a user