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:
58
skills/dbos-python/references/pattern-sleep.md
Normal file
58
skills/dbos-python/references/pattern-sleep.md
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
title: Use Durable Sleep for Delayed Execution
|
||||
impact: MEDIUM
|
||||
impactDescription: Survives restarts and can span days or weeks
|
||||
tags: sleep, delay, schedule, durable
|
||||
---
|
||||
|
||||
## Use Durable Sleep for Delayed Execution
|
||||
|
||||
Use `DBOS.sleep()` for durable delays that survive restarts. The wakeup time is persisted in the database.
|
||||
|
||||
**Incorrect (regular sleep):**
|
||||
|
||||
```python
|
||||
import time
|
||||
|
||||
@DBOS.workflow()
|
||||
def delayed_task(delay_seconds, task):
|
||||
# Regular sleep is lost on restart!
|
||||
time.sleep(delay_seconds)
|
||||
run_task(task)
|
||||
```
|
||||
|
||||
**Correct (durable sleep):**
|
||||
|
||||
```python
|
||||
@DBOS.workflow()
|
||||
def delayed_task(delay_seconds, task):
|
||||
# Durable sleep - survives restarts
|
||||
DBOS.sleep(delay_seconds)
|
||||
run_task(task)
|
||||
```
|
||||
|
||||
Use cases for durable sleep:
|
||||
- Schedule a task for the future
|
||||
- Wait between retries
|
||||
- Implement delays spanning hours, days, or weeks
|
||||
|
||||
Example: Schedule a reminder:
|
||||
|
||||
```python
|
||||
@DBOS.workflow()
|
||||
def send_reminder(user_id: str, message: str, delay_days: int):
|
||||
# Sleep for days - survives any restart
|
||||
DBOS.sleep(delay_days * 24 * 60 * 60)
|
||||
send_notification(user_id, message)
|
||||
```
|
||||
|
||||
For async workflows, use `DBOS.sleep_async()`:
|
||||
|
||||
```python
|
||||
@DBOS.workflow()
|
||||
async def async_delayed_task():
|
||||
await DBOS.sleep_async(60)
|
||||
await run_async_task()
|
||||
```
|
||||
|
||||
Reference: [Durable Sleep](https://docs.dbos.dev/python/tutorials/workflow-tutorial#durable-sleep)
|
||||
Reference in New Issue
Block a user