SAService Architect Back to designer
SAService ArchitectDocumentation
Python API reference schedule() | activity() | workflow()

Cron and Temporal endpoints

Create local Cron callbacks and Temporal Activity or Workflow endpoints with typed scheduling and timeout options.

When to use

Use Cron for local process schedules and Temporal for durable Activities, Workflows, and namespace schedules.

Behavior

  • CronSchedule requires a five-field expression and defaults to UTC.
  • Temporal Activity and Workflow endpoints are on-demand when schedule=None.
  • TemporalSchedule requires both an expression and a stable user-chosen ID.

CronConnector.schedule() properties

Local scheduler endpoint.

PropertyTypeDescription
name / function / triggerstr / Function / CronSchedule

Identity, callback, and typed trigger.

Required
CronSchedule.expression / timezonestr / str

Five-field cron and timezone.

Default: timezone UTC
enabledbool

Enable schedule startup.

Default: True
CronSchedule.overlap_policyScheduleOverlapPolicy

Behavior when the prior run is active.

Default: Skip
CronSchedule.missed_run_policyScheduleMissedRunPolicy

Behavior after a missed fire time.

Default: Skip

TemporalConnector.activity() properties

Temporal Activity endpoint.

PropertyTypeDescription
workerActivityWorker

Task queue and max_concurrent Activity capacity.

Required
timeoutsActivityTimeouts

start_to_close plus optional heartbeat and workflow_execution milliseconds.

Required
retryRetryPolicy | None

Maximum attempts.

Default: None
scheduleTemporalSchedule | None

Optional durable namespace schedule.

Default: None

TemporalConnector.workflow() properties

Temporal Workflow endpoint.

PropertyTypeDescription
workerWorkflowWorker

Task queue and max_concurrent Workflow task capacity.

Required
timeoutsWorkflowTimeouts | None

Optional whole Workflow execution timeout.

Default: None
retryRetryPolicy | None

Workflow start maximum attempts.

Default: None
scheduleTemporalSchedule | None

Optional durable namespace schedule.

Default: None

Shared Temporal options properties

Optional namespace schedule configuration.

PropertyTypeDescription
expression / idstr / str

Five-field cron and stable Temporal Schedule ID.

Required
timezonestr

Schedule timezone.

Default: UTC
overlap_policy / missed_run_policyenum

Durable overlap and catch-up behavior.

Default: Skip / FireOnce
enabled / tracing_enabledbool / bool | None

Runtime admission and tracing.

Default: True / None

Python example

activity = temporal.activity(
    "Process Order Activity",
    function=Function(name="ProcessOrderActivity", module=LOCAL_MODULE),
    worker=ActivityWorker(task_queue="orders-activities", max_concurrent=32),
    timeouts=ActivityTimeouts(start_to_close=60_000, heartbeat=10_000),
    retry=RetryPolicy(maximum_attempts=3),
)
workflow = temporal.workflow(
    "Daily Orders Workflow",
    function=Function(name="DailyOrdersWorkflow", module=LOCAL_MODULE),
    worker=WorkflowWorker(task_queue="orders-workflows", max_concurrent=16),
    timeouts=WorkflowTimeouts(execution=3_600_000),
    schedule=TemporalSchedule(
        expression="0 9 * * 1-5",
        id="daily-orders-workflow",
        timezone="UTC",
    ),
)