TGViewer
Хэндлим тему | Дерепко Хэндлим тему | Дерепко @handle_topic · 276 subscribers
Post #126 436
Temporal Minimal Setup

Temporal — инструмент для управления бизнес-процессами.

Temporal состоит из нескольких компонентов:

- Server
- Worker
- Client

Server

Сервер Temporal реализует протокол взаимодействия между Client и Worker. Также Temporal выполняет оркестрацию процессов: следит за таймаутами, ретраями, предоставляет Web UI и другие возможности.

Worker

Worker подписывается на очередь событий, в которую пишет Server. Server размещает в очереди задачи, которые могут быть разных типов. Задачи Workflow обрабатываются одним воркером в один момент времени. Задачи Activity обрабатываются пулом процессов.

Client

Программный код, который ставит задачу Server и может ожидать результат выполнения.

Workflow

Бизнес-логика вашего процесса. Никаких сетевых запросов, обращений к файлам, системному времени, генераторам случайных чисел — только детерминированный код.

Workflow может вызывать другой Workflow или Activity. При выполнении Workflow сохраняет чекпоинты в истории на Server. При перезапуске процесса пройденные шаги не выполняются заново, а восстанавливаются из истории. Перезапуск может произойти из-за ошибки, таймаута или внешнего сигнала. История доступна в Web UI.

Activity

Здесь может быть любой код: сетевые запросы, работа с файлами, внешние API.

Activity вызывается только из Workflow. Когда Workflow вызывает Activity, результат сохраняется в истории и при Replay не выполняется повторно.

---

Быстрый старт

Я подготовил минимальный шаблон для работы с Temporal на PHP.

Шаги:

1. Клонировать репозиторий
2. Убедиться, что установлены PHP 8.1+ и расширение grpc
3. composer install — установит PHP-зависимости
4. ./vendor/bin/dload — скачает RoadRunner (`rr`) и Temporal CLI (`temporal`)
5. ./temporal server start-dev — запустит Temporal Server
6. ./rr serve — запустит RoadRunner с воркерами

Теперь Temporal Server готов к работе, а RoadRunner запустил воркеры для обработки Workflow и Activity.

Выполнение задачи:

Не выключая предыдущие команды, запустите:

php client.php


Путь данных:

1. Client отправляет задачу в Temporal Server
2. Server размещает задачу в очереди
3. RoadRunner получает задачу и передаёт в Workflow
4. Workflow выполняет логику и запрашивает Activity
5. Server размещает задачу для Activity
6. Activity выполняется, результат сохраняется
7. Workflow получает результат, завершается
8. Client получает итоговый результат

—

GitHub: https://github.com/xepozz/temporal-minimal-example


—

Пост был доступен в 🐘 PHP People.
Для получения доступа можно подписаться в @phpeople_bot

—

@handle_topic
GitHub GitHub - xepozz/temporal-minimal-example Contribute to xepozz/temporal-minimal-example development by creating an account on GitHub.
  • 🔥 9
  • ❤ 3
  • 👍 3
More from @handle_topic
  1. Sep 9, 2026Пыхник’26 — целая неделя PHP! С 28 сентября по 2 октября пройдёт Пыхник’26 — онлайн-конфер…
  2. Aug 24, 2026Мой Pull Request в vlucas/dotenv смёржили! Рад ли я? Конечно. Прихнаюсь честно, у меня это…
  3. Aug 5, 2026Jetbrains выделили LSP ядро для Java/Kotlin, так что теперь вся (а вся?) мощщщщь IDEA дост…
  4. Jul 30, 2026Вайбкодеры?
  5. Jul 19, 2026Когда выучил высоконагруженные системы @git_rebase / send memes
  6. Jun 30, 2026Jetbrains Air на Windows! Если вы вдруг разрабатываете на винде (сожалею вам), то можете п…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →