Parametrizable taskiq-based worker for Payload CMS — FastAPI kick app + Postgres LISTEN/NOTIFY broker + LlamaParse parse-document task.
Project description
payload-documents-worker-builder
Parametrizable taskiq worker for Payload CMS, ready to drop into a workspace.
Provides:
RuntimeConfig— pydantic config (one place for everything: DB DSN, Payload base URL, internal secret, LlamaCloud API key).create_broker(config)— Redis stream broker (viataskiq-redis) with smart retry middleware.create_app(config)— bundles broker + tasks + a small FastAPI HTTP "kicker" that exposesPOST /tasks/parse-documentso the Next.js side can enqueue parses without speaking the taskiq protocol directly.parse_document_task— built-in task that uploads a Payload document to LlamaParse, polls until done, and writesparsed_text+parse_statusback via Payload REST.
Usage
from payload_documents_worker_builder import RuntimeConfig, create_app
from pydantic import SecretStr
config = RuntimeConfig(
app_name="my-worker",
redis_url="redis://redis:6379",
payload_url="http://app:3000",
payload_service_token=SecretStr("..."), # Payload API key with write access
llama_cloud_api_key=SecretStr("..."),
internal_secret=SecretStr("dev"),
documents_collection_slug="documents",
)
app, broker = create_app(config)
Run two processes side by side:
uvicorn my_worker.main:app --host 0.0.0.0 --port 8001 # HTTP kicker
taskiq worker my_worker.main:broker # task consumer
Architecture
Next.js (Payload) payload-documents-worker (uvicorn) payload-documents-worker (taskiq)
───────────────────────── ──────────────────────────── ────────────────────────────
POST /api/documents/{id}/parse POST /tasks/parse-document consume `parse_document` task
├ stamps parse_status='queued' ├ broker.kiq() ├ download file from Payload
└ HTTP→ kicker └ returns 202 ├ upload to LlamaCloud
├ poll status
└ PATCH parsed_text/status
│ │
└─────────── Redis Stream ─────────┘
Public API
from payload_documents_worker_builder import (
create_app,
create_broker,
RuntimeConfig,
LlamaParseClient,
PayloadClient,
parse_document_task,
)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file payload_documents_worker_builder-0.1.1.tar.gz.
File metadata
- Download URL: payload_documents_worker_builder-0.1.1.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43b82a57955b480af0107438f2b7f32f37b0150fd72b8546877345d5ef99fbf5
|
|
| MD5 |
c5afc1f11e00c355df30ee7262253ee1
|
|
| BLAKE2b-256 |
332d5adbd14fc8bf755d28ad8aed76ad2e841eedf49daaa5a985fb1aae61880b
|
File details
Details for the file payload_documents_worker_builder-0.1.1-py3-none-any.whl.
File metadata
- Download URL: payload_documents_worker_builder-0.1.1-py3-none-any.whl
- Upload date:
- Size: 16.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9bfa615cf6c926ca2e8d00ab5c85732e3cc36482767fc6ca9dae5d4768a49a5
|
|
| MD5 |
f6dd91b0fdc86f82c7356f2f159c8eeb
|
|
| BLAKE2b-256 |
74f186a3aae9a175944b67e985afd9266c7149bfcc3a8a051f004c58d36bbe29
|