Skip to main content
https://media.charlesleifer.com/blog/photos/huey3-logo.png

a lightweight alternative.

huey is:

  • a task queue

  • written in python

  • clean and simple API

huey has:

  • support for redis (or valkey/redict), postgres, sqlite, file-system, or in-memory storage

  • zero dependencies (redis-py required to use redis-like brokers, psycopg for postgres).

  • example code.

  • django integration (native or via django.tasks) with admin integration for visibility and management.

  • documentation.

huey supports:

  • multi-process, multi-thread or greenlet task execution models

  • schedule tasks to execute at a given time, or after a given delay

  • schedule recurring tasks, like a crontab

  • automatically retry tasks that fail

  • task prioritization

  • task result storage

  • task expiration

  • task locking, rate-limits and timeouts

  • task pipelines and chains

  • groups (fan-out), chords (map / reduce)

https://i.imgur.com/2EpRs.jpg

At a glance

from huey import RedisHuey, crontab

# Or PostgresHuey, SqliteHuey, FileHuey, etc...
huey = RedisHuey('my-app', host='redis.myapp.com')

@huey.task()
def add_numbers(a, b):
    return a + b

@huey.task(retries=2, retry_delay=60)
def flaky_task(url):
    # This task might fail, in which case it will be retried up to 2 times
    # with a delay of 60s between retries.
    return this_might_fail(url)

@huey.periodic_task(crontab(minute='0', hour='3'))
def nightly_backup():
    sync_all_data()

Calling a task-decorated function will enqueue the function call for execution by the consumer. A special result handle is returned immediately, which can be used to fetch the result once the task is finished:

>>> from demo import add_numbers
>>> res = add_numbers(1, 2)
>>> res
<Result: task 6b6f36fc-da0d-4069-b46c-c0d4ccff1df6>

>>> res()
3

Tasks can be scheduled to run in the future:

>>> res = add_numbers.schedule((2, 3), delay=10)  # Will be run in ~10s.
>>> res(blocking=True)  # Will block until task finishes, in ~10s.
5

For much more, check out the guide or take a look at the example code.

Running the consumer

Run the consumer with four worker processes:

$ huey_consumer my_app.huey -k process -w 4

To run the consumer with a single worker thread (default):

$ huey_consumer my_app.huey

If your work-loads are mostly IO-bound, you can run the consumer with threads or greenlets instead. Because greenlets are so lightweight, you can run quite a few of them efficiently:

$ huey_consumer my_app.huey -k greenlet -w 32

Storage

Huey’s design and feature-set were informed by the capabilities of the Redis database. Redis is a fantastic fit for a lightweight task queueing library like Huey: it’s self-contained, versatile, and can be a multi-purpose solution for other web-application tasks like caching, event publishing, analytics, rate-limiting, and more.

Although Huey was designed with Redis in mind, the storage system implements a simple API and many other tools could be used instead of Redis if that’s your preference.

Huey comes with builtin support for Redis, Postgres, Sqlite, File-system, and in-memory storage.

Frameworks

Huey provides Django integration either natively or via django.tasks. Huey also provides an optional admin integration for Django:

https://huey.readthedocs.io/en/latest/_images/django-admin.png

Huey also provides flask-peewee admin integration based on the same underlying stat-tracking system:

https://huey.readthedocs.io/en/latest/_images/flask-admin-panel.png

Other frameworks can use the stats extension to collect and display this information.

Documentation

See Huey documentation.

Project page

See source code and issue tracker on Github.

Huey is named in honor of my cat:

https://m.charlesleifer.com/t/800x-/blog/photos/p1473037658.76.jpg?key=mD9_qMaKBAuGPi95KzXYqg

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

huey-3.4.0.tar.gz (630.0 kB view details)

Uploaded Source

Built Distribution

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

huey-3.4.0-py3-none-any.whl (136.5 kB view details)

Uploaded Python 3

File details

Details for the file huey-3.4.0.tar.gz.

File metadata

  • Download URL: huey-3.4.0.tar.gz
  • Upload date:
  • Size: 630.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for huey-3.4.0.tar.gz
Algorithm Hash digest
SHA256 ac9b02e741f13da4092ea19bcaafc73669e97d3153914d2fed2868df144f6dfa
MD5 9318f6bf656d7919b7d56afcc6ffeb2d
BLAKE2b-256 57251281d8f3febc30b5facbfc5e4163447241711591c094dac642d32c827eb0

See more details on using hashes here.

File details

Details for the file huey-3.4.0-py3-none-any.whl.

File metadata

  • Download URL: huey-3.4.0-py3-none-any.whl
  • Upload date:
  • Size: 136.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for huey-3.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d0580762397744026f83baae5f2b97a62474a62b8565ac75bbafefe72f9c784f
MD5 ca5855aa092fee05b623f7a7e20911f1
BLAKE2b-256 5731cee585bd4d1e39947a426a6736f4e17d22b454952370fb9cf48eb3103085

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

3.4.0 This release

2 files

3.3.4

2 files

3.3.3

2 files

3.3.2

2 files

3.3.1

2 files

3.3.0

2 files

3.2.1

2 files

3.2.0

2 files

3.1.1

2 files

3.1.0

2 files

3.0.3

2 files

3.0.2

2 files

3.0.1

2 files

3.0.0

2 files

2.6.0

2 files

2.5.5

2 files

2.5.4

2 files

2.5.3

1 file

2.5.2

1 file

2.5.1

1 file

2.5.0

1 file

2.4.5

1 file

2.4.4

1 file

2.4.3

1 file

2.4.2

1 file

2.4.1

1 file

2.4.0

1 file

2.3.2

1 file

2.3.1

1 file

2.3.0

1 file

2.2.0

1 file

2.1.3

1 file

2.1.2

1 file

2.1.1

1 file

2.1.0

1 file

2.0.1

1 file

2.0.0

1 file

1.11.0

1 file

1.10.5

1 file

1.10.4

1 file

1.10.3

1 file

1.10.2

1 file

1.10.1

1 file

1.10.0

1 file

1.9.1

1 file

1.9.0

1 file

1.8.0

1 file

1.7.0

1 file

1.6.1

1 file

1.6.0

1 file

1.5.6

1 file

1.5.5

1 file

1.5.4

1 file

1.5.3

1 file

1.5.2

1 file

1.5.1

1 file

1.5.0

1 file

1.4.1

1 file

1.4.0

1 file

1.3.1

1 file

1.3.0

1 file

1.2.3

1 file

1.2.2

1 file

1.2.1

1 file

1.2.0

1 file

1.1.2

1 file

1.1.1

1 file

1.1.0

1 file

1.0.0

1 file

0.4.9

1 file

0.4.8

1 file

0.4.7

1 file

0.4.6

1 file

0.4.5

1 file

0.4.4

0.4.3

1 file

0.4.2

1 file

0.4.1

1 file

0.4.0

1 file

0.3.2

1 file

0.3.1

1 file

0.3.0

1 file

0.2.2

1 file

0.2.1

1 file

0.2.0

1 file

0.1.1

1 file

0.1.0

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page