Skip to main content

Hyrex is the open-source COLD task orchestration framework built on Postgres.

Project description

hyrex-sdk

Hyrex is a modern, open-source task orchestration framework.

Installation

pip install hyrex

Running on your own infra:

Step 1: Database initialization

  • Set HYREX_DATABASE_URL to your Postgres database connection string
  • Run hyrex init-db

Step 2: Decorate your tasks

  • Instantiate a Hyrex object wherever your tasks are defined:
from hyrex import Hyrex

hy = Hyrex(app_id="my-hyrex-app")
  • Decorate your task:
def NameContext(BaseModel):
    name: str


@hy.task
def say_name(context: NameContext):
    print(context.name)
  • Send your task to the Hyrex queue. A worker will pick it up from there.
say_name.send(NameContext(name="Bob"))

Step 3: Run your worker(s)

  • Make sure HYREX_DATABASE_URL is set.
  • Update this command with the module path to your Hyrex instance:
hyrex run-worker my_app.tasks:hy

Logging

Hyrex uses Python's logging module for logging info about task queueing, worker status, etc. By default, logs are displayed at the INFO level. To adjust the logging level or disable logs, configure this in your application. For example:

import logging
# To change to DEBUG level
logging.basicConfig(level=logging.DEBUG)

# To disable logs
logging.getLogger("hyrex").setLevel(logging.CRITICAL)

To configure Hyrex logs only:

logger = logging.getLogger("hyrex")
# Change log level
logger.setLevel(logging.DEBUG)
# Or disable logs
logger.setLevel(logging.CRITICAL)

Handlers and formatting options from the logging module are also supported.

For worker processes, the logging level can be set using the log-level flag on the hyrex run-worker CLI command.

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

hyrex-0.10.7.tar.gz (114.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hyrex-0.10.7-py3-none-any.whl (191.4 kB view details)

Uploaded Python 3

File details

Details for the file hyrex-0.10.7.tar.gz.

File metadata

  • Download URL: hyrex-0.10.7.tar.gz
  • Upload date:
  • Size: 114.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.3

File hashes

Hashes for hyrex-0.10.7.tar.gz
Algorithm Hash digest
SHA256 8739a334f64b0e4950b30a58e4e076bad7faa6da410860b5d85cc39f10e99ff8
MD5 8853aacf6bec9698aa97048b40e806e5
BLAKE2b-256 03ea27c21ee4cbff9c0ddb9bc6ddfd46e0b174cd301e0b3b94d23442d21a01ec

See more details on using hashes here.

File details

Details for the file hyrex-0.10.7-py3-none-any.whl.

File metadata

  • Download URL: hyrex-0.10.7-py3-none-any.whl
  • Upload date:
  • Size: 191.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.3

File hashes

Hashes for hyrex-0.10.7-py3-none-any.whl
Algorithm Hash digest
SHA256 36092076273f6e3b7095b1bea93c2835eb8a519eb822e37c04cd7370be7d1c9e
MD5 3522bbd82be3a5e0c256075bf334d8ec
BLAKE2b-256 2ac7761b43815fe1a79fd17fa2e893c32c0520582072e489a7fe5a92b0016e1b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page