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
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.0.tar.gz
(15.3 kB
view hashes)
Built Distribution
Close
Hashes for temporal_boost-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d110991a4058e282b9206ab081ac451e046b0dac82c9730ba214017f59ae134 |
|
MD5 | 1231bad79016db0bbfd3183a11d47f77 |
|
BLAKE2b-256 | 3737ad156649eb3563f7003d326db1818255890fa4184143c54f203725f04897 |