Small framework for Temporal development
Project description
Temporal-boost
Documentation is available on GH pages
Small framework based on temporalio/sdk-python - create Temporal microservices as fast as you can
Requirements
- Python >= 3.10
Features
- Create Temporal workers with FastAPI-style
- Add CRON workers with one code line
- Append ASGI (ex. FastAPI) workers like Temporal
- Auto documentation with web UI (like SwaggerUI in FastAPI)
- Build-in logger and OTLP tracer
Quick start
from temporal_boost import BoostApp
from temporalio import activity
from temporalio import workflow
# Create `BoostApp` object
app = BoostApp()
# Describe your activities/workflows
@activity.defn(name="test_boost_activity_1")
async def test_boost_activity_1(foo: str, bar: str) -> str:
app.logger.info("This is built-in logger")
return f"1_{foo}{bar}"
@activity.defn(name="test_boost_activity_2")
async def test_boost_activity_2(foo: str, bar: str) -> str:
return f"2_{foo}{bar}"
@workflow.defn(name="TestCronWorkflow", sandboxed=False)
class TestCronWorkflow:
@workflow.run
async def run(self) -> None:
app.logger.warning("With is cron workflow")
return None
# Add async workers to your app (FastAPI style)
app.add_worker(
"worker_1",
"task_q_1",
activities=[test_boost_activity_1],
metrics_endpoint="0.0.0.0:9000"
)
app.add_worker(
"worker_2",
"task_q_2",
activities=[test_boost_activity_2]
)
# Example of CRON worker
app.add_worker(
"test_cron",
"task_q_3",
workflows=[TestCronWorkflow],
cron_schedule="* * * * *",
cron_runner=TestCronWorkflow.run
)
# Run your app and start workers with CLI
app.run()
python3 main.py
# Usage: main.py [OPTIONS] COMMAND [ARGS]...
# Options:
# --install-completion [bash|zsh|fish|powershell|pwsh]
# Install completion for the specified shell.
# --show-completion [bash|zsh|fish|powershell|pwsh]
# Show completion for the specified shell, to
# copy it or customize the installation.
# --help Show this message and exit.
# Commands:
# cron
# run
python3 main.py run
# Usage: main.py run [OPTIONS] COMMAND [ARGS]...
# Options:
# --help Show this message and exit.
# Commands:
# all
# test_cron
# worker_1
# worker_2
python3 main.py run worker_1
# 2023-09-20T21:25:12 | INFO | Worker worker_1 was registered in CLI
# 2023-09-20T21:25:12 | INFO | Worker worker_2 was registered in CLI
# 2023-09-20T21:25:12 | INFO | Worker test_cron was registered in CLI
# 2023-09-20T21:25:12 | INFO | Worker worker_1 started on task_q_1 queue
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
temporal_boost-1.0.3.tar.gz
(15.6 kB
view details)
Built Distribution
File details
Details for the file temporal_boost-1.0.3.tar.gz
.
File metadata
- Download URL: temporal_boost-1.0.3.tar.gz
- Upload date:
- Size: 15.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.11.0 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1415c1136595803849c4557276faf464ffac62bced145a9a63f9296e02a2c29b |
|
MD5 | d2291416af5fae3038a50aaf7782bb1d |
|
BLAKE2b-256 | 9a447281f839afef75966e2c6a9db5ecf1bf167263728eaf6aef63c527ce0b5f |
File details
Details for the file temporal_boost-1.0.3-py3-none-any.whl
.
File metadata
- Download URL: temporal_boost-1.0.3-py3-none-any.whl
- Upload date:
- Size: 21.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.11.0 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f41fefe65965ed514abf83920fcd87fd12ce61df3bfd4996829c3009456d7407 |
|
MD5 | 3c6a98403867a8c333c75fa3946c9570 |
|
BLAKE2b-256 | 9a5ba67f32f9a72336fbd975b3ba9a6efa51b7af85f5070a4e8d44ad3bee3dd8 |