DevGang
Авторизоваться

Python SDK: Ваше первое приложение

В предыдущих постах мы подробно рассказывали о том, почему мы создали Python SDK, workers и workflows, но как это выглядит на практике? Возможно, вы относитесь к тому типу людей, которые прочитали статьи, ознакомились с Руководством разработчика, взглянули на примеры приложений Python SDK и подумали: “Это уже слишком!”

Наша роль как защитника разработчиков состоит в том, чтобы немного больше изучить SDK и посмотреть, как воплотить его в жизнь различными способами, и этот пост предназначен для того, чтобы заглянуть в наш собственный путь обучения Temporal.

Есть люди, которые предпочитают делать что-то, а не читать или слышать об этом. Итак, хотя документация и видео жизненно важны для обучения, момент “ага” не встает на свои места до тех пор, пока действительно не испачкают руки.

Также люди любят игры, головоломки, загадки и тому подобное, и они склонны превращать любую задачу в своего рода приключение.

Так что, хотя есть много различных примеров Temporal, которые интересны другим, например, проверка фона, это абсолютно не в нашем вкусе.

Хотя мы знали, что хотим создать игру, и не были уверены, какую из них выбрать, но, внимательно изучив покер, поняли, что ставки и денежные переводы лучше всего подчеркивают последовательное и безопасное исполнение Temporal, в то время как по очереди выделяются сигналы и запросы.

Поэтому и создали покерное приложение.

Чтобы обеспечить подлинный пользовательский опыт от наличия чего-то существующего и последующего добавления во времени, мы создали простое приложение без каких-либо временных рамок вообще.

Простое создание

Давайте представим, что вы изучаете новую технологию, такую как Temporal, мы не собираемся брать эту новую технологию и добавлять базу данных, с которой никогда не работали, развертывать на платформе, к которой мы никогда не прикасались, создавать сложное приложение; Мы хотим, чтобы новая технология была как можно более упорядоченной, используя дополнительные технологии, которые нам очень удобны, чтобы, когда всплывают ошибки, сразу знали, связано ли это с новой технологией или со старой знакомой проблемой.

Если новая технология похожа на велосипедное колесо, мы хотим изучить ее спица к спице, а не заменять все колесо или велосипед целиком, чтобы мы могли по-настоящему ознакомиться с тем, как все работает, прежде чем брать его в дорогу.

Temporal как платформа надежна и имеет массу мощных функций, поэтому это не plug-and-play, как вы можете видеть с некоторыми другими SDK — вы не можете просто импортировать библиотеку и работать. Следуя нашим предыдущим постам, мы знаем, что нам нужно:

  • Импорт временных и асинхронных пакетов
  • Подключиться к Temporal Server
  • Включить worker
  • Создать workflow
  • Создать activity

Есть много способов свести это воедино, но следование нашим рекомендациям может помочь вам преодолеть некоторые препятствия. В следующей версии этого покерного приложения будет гораздо больше workflow, дочерних workflow, возможно, другого действия и игры с сигналами и запросами, но для версии v1.0 мы добавили один простой рабочий процесс и одно действие.

Как это выглядит в игре в покер?

Начнем с простого workflow:

    @workflow.defn
    class PokerWorkflow:
       @workflow.run
       async def run(self) -> None:
   return await workflow.execute_activity(
       poker_game,
       start_to_close_timeout=timedelta(seconds=10),
   )

Учитывая, что это эксперимент по изучению языка и не обязательно по реализации, мы использовали действие для запуска основной части приложения:

    @activity.defn
    async def poker_game() -> None:

Обратите внимание, что это НЕ лучшее использование Temporal — в идеале этот раздел должен касаться только бита перемешивания приложения, потому что именно здесь используется библиотека случайных чисел. Переложим в следующей версии приложения.

PyCharm

Мы являемся сторонниками Vim, когда начали этот проект, мы написали все приложение на Python в Vim.

Но как только начали реализовывать Temporal аспекты подключения к серверу, включения worker, создания workflow и тому подобного, мы не могли сказать, были ли сообщения об ошибках от Python, Temporal или от сети, а IDE снижает уровень шума.

Поскольку мы работали на языке программирования Python, то обратились к одной из наиболее часто используемых IDE, PyCharm, которая позволяет добавлять модули Temporal с помощью нескольких простых шагов.

Используйте инструмент Python Packages, чтобы добавить пакет temporalio в текущий проект через View | Tool Windows | Python Packages. Нажмите кнопку «Install» в правом верхнем углу окна — по умолчанию будет установлена последняя версия.

PyCharm подтвердит установку через небольшое всплывающее окно в правом нижнем углу экрана.

Следующие шаги

Это поможет вам начать работу с Temporal Python SDK, но если нет, то увидимся на форуме, и если вам интересно взглянуть на версию 1.0 покерного приложения, не стесняйтесь . Для нас следующим шагом в изучении Temporal является погружение в дочерние рабочие процессы, сигналы и запросы к покерному приложению.

И поделимся с вами следующими советами и приемами, которые мы узнаем на этом пути.

Это третья статья из серии Python SDK. Вы можете найти предыдущие статьи или же продолжить знакомиться с  данной темой пройдя по ссылкам:

#Python
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу