feat: add DBOS skills for TypeScript, Python, and Go (#94)
Add three DBOS SDK skills with reference documentation for building reliable, fault-tolerant applications with durable workflows. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
74
skills/dbos-python/references/lifecycle-config.md
Normal file
74
skills/dbos-python/references/lifecycle-config.md
Normal file
@@ -0,0 +1,74 @@
|
||||
---
|
||||
title: Configure and Launch DBOS Properly
|
||||
impact: CRITICAL
|
||||
impactDescription: Application won't function without proper setup
|
||||
tags: configuration, launch, setup, initialization
|
||||
---
|
||||
|
||||
## Configure and Launch DBOS Properly
|
||||
|
||||
Every DBOS application must configure and launch DBOS inside the main function.
|
||||
|
||||
**Incorrect (configuration at module level):**
|
||||
|
||||
```python
|
||||
from dbos import DBOS, DBOSConfig
|
||||
|
||||
# Don't configure at module level!
|
||||
config: DBOSConfig = {
|
||||
"name": "my-app",
|
||||
}
|
||||
DBOS(config=config)
|
||||
|
||||
@DBOS.workflow()
|
||||
def my_workflow():
|
||||
pass
|
||||
|
||||
if __name__ == "__main__":
|
||||
DBOS.launch()
|
||||
my_workflow()
|
||||
```
|
||||
|
||||
**Correct (configuration in main):**
|
||||
|
||||
```python
|
||||
import os
|
||||
from dbos import DBOS, DBOSConfig
|
||||
|
||||
@DBOS.workflow()
|
||||
def my_workflow():
|
||||
pass
|
||||
|
||||
if __name__ == "__main__":
|
||||
config: DBOSConfig = {
|
||||
"name": "my-app",
|
||||
"system_database_url": os.environ.get("DBOS_SYSTEM_DATABASE_URL"),
|
||||
}
|
||||
DBOS(config=config)
|
||||
DBOS.launch()
|
||||
my_workflow()
|
||||
```
|
||||
|
||||
For scheduled-only applications (no HTTP server), block the main thread:
|
||||
|
||||
```python
|
||||
import os
|
||||
import threading
|
||||
from dbos import DBOS, DBOSConfig
|
||||
|
||||
@DBOS.scheduled("* * * * *")
|
||||
@DBOS.workflow()
|
||||
def scheduled_task(scheduled_time, actual_time):
|
||||
pass
|
||||
|
||||
if __name__ == "__main__":
|
||||
config: DBOSConfig = {
|
||||
"name": "my-app",
|
||||
"system_database_url": os.environ.get("DBOS_SYSTEM_DATABASE_URL"),
|
||||
}
|
||||
DBOS(config=config)
|
||||
DBOS.launch()
|
||||
threading.Event().wait() # Block forever
|
||||
```
|
||||
|
||||
Reference: [DBOS Configuration](https://docs.dbos.dev/python/reference/configuration)
|
||||
Reference in New Issue
Block a user