Skip to main content

prefect.server.services.task_run_recorder

Functions

task_run_from_event

db_recordable_task_run_from_event

record_task_run_event

Record a single task run event in the database. Delegates to record_bulk_task_run_events, which already retries once on IntegrityError to recover from TOCTOU races against concurrent recorders. Any IntegrityError that survives the retry is treated as an unrecoverable duplicate and the event is discarded.

record_bulk_task_run_events

Record multiple task run events in the database, taking advantage of bulk inserts. Retries once on IntegrityError to handle TOCTOU races between concurrent recorder instances: when two batches reference the same task_run.id with different natural keys, one batch’s existence-check SELECT may run before the other batch’s INSERT commits. The retry re-runs the SELECT in a fresh session so the conflict target is chosen against the now-visible row.

consumer

Classes

RetryableEvent

TaskRunRecorder

Constructs task runs and states from client-emitted events Methods:

all_services

Get list of all service classes

enabled

Whether the service is enabled

enabled_services

Get list of enabled service classes

environment_variable_name

run_services

Run enabled services until cancelled.

running

A context manager that runs enabled services on entry and stops them on exit.

service_settings

service_settings

The Prefect setting that controls whether the service is enabled

start

start

Start running the service, which may run indefinitely

started_event

started_event

stop

stop

Stop the service