RSS Планета Python

Армин Ронахер: Абсурдные рабочие процессы: Надежное выполнение только с помощью Postgres

Автор создает агентов и решает проблему надежного выполнения, что является критически важным аспектом надежных долгоживущих функций. Он создал "Absurd 1", библиотеку, основанную исключительно на SQL и PostgreSQL, для надежных рабочих процессов, чтобы избежать сторонних зависимостей. Надежное выполнение включает управление состоянием и разделение задач на более мелкие шаги, обеспечивая устойчивость к сбоям. Возможности PostgreSQL по постановке в очередь и хранению состояния используются с помощью `SELECT FOR UPDATE SKIP LOCKED` для очередей задач и контрольных точек. Absurd представляет собой один SQL-файл, использующий SDK для простоты использования, разделяя задачи на последовательно выполняемые шаги. Задачи могут быть приостановлены или завершиться неудачно, перезапускаясь с последнего неудачного шага с сохраненными контрольными точками. События и задержки также поддерживаются для более сложных рабочих процессов. Агенты Absurd имеют один шаг, который повторяется до завершения, что используется в примере агента с обработкой сообщений. Этот подход обеспечивает механизмы контрольных точек и повторных попыток для восстановления задач и прогресса агента. Система позволяет ожидать события и генерировать их для облегчения координации с другими процессами. Простота Absurd, благодаря отсутствию необходимости в отдельных службах, делает его простым в использовании и самостоятельном размещении. Автор подчеркивает, что надежные рабочие процессы, хотя и мощные, могут быть реализованы с минимальной сложностью с использованием PostgreSQL.
favicon
lucumr.pocoo.org
Armin Ronacher: Absurd Workflows: Durable Execution With Just Postgres
Create attached notes ...