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.
name / function / triggerstr / Function / CronScheduleIdentity, callback, and typed trigger.
RequiredCronSchedule.expression / timezonestr / strFive-field cron and timezone.
Default:timezone UTCenabledboolEnable schedule startup.
Default:TrueCronSchedule.overlap_policyScheduleOverlapPolicyBehavior when the prior run is active.
Default:SkipCronSchedule.missed_run_policyScheduleMissedRunPolicyBehavior after a missed fire time.
Default:SkipTemporalConnector.activity() properties
Temporal Activity endpoint.
workerActivityWorkerTask queue and max_concurrent Activity capacity.
RequiredtimeoutsActivityTimeoutsstart_to_close plus optional heartbeat and workflow_execution milliseconds.
RequiredretryRetryPolicy | NoneMaximum attempts.
Default:NonescheduleTemporalSchedule | NoneOptional durable namespace schedule.
Default:NoneTemporalConnector.workflow() properties
Temporal Workflow endpoint.
workerWorkflowWorkerTask queue and max_concurrent Workflow task capacity.
RequiredtimeoutsWorkflowTimeouts | NoneOptional whole Workflow execution timeout.
Default:NoneretryRetryPolicy | NoneWorkflow start maximum attempts.
Default:NonescheduleTemporalSchedule | NoneOptional durable namespace schedule.
Default:NoneShared Temporal options properties
Optional namespace schedule configuration.
expression / idstr / strFive-field cron and stable Temporal Schedule ID.
RequiredtimezonestrSchedule timezone.
Default:UTCoverlap_policy / missed_run_policyenumDurable overlap and catch-up behavior.
Default:Skip / FireOnceenabled / tracing_enabledbool / bool | NoneRuntime admission and tracing.
Default:True / NonePython 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",
),
)