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:
parent
21edc313db
commit
5e4dc6c946
3 changed files with 72 additions and 8 deletions
|
|
@ -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(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue