Metadata-Version: 2.0 Name: huey Version: 1.10.4 Summary: huey, a little task queue Home-page: http://github.com/coleifer/huey/ Author: Charles Leifer Author-email: coleifer@gmail.com License: UNKNOWN Platform: UNKNOWN Classifier: Development Status :: 4 - Beta Classifier: Environment :: Web Environment Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Provides-Extra: backends Requires-Dist: peewee; extra == 'backends' Requires-Dist: redis; extra == 'backends' Requires-Dist: simpledb; extra == 'backends' Provides-Extra: redis Requires-Dist: redis; extra == 'redis' Provides-Extra: simpledb Requires-Dist: simpledb; extra == 'simpledb' Provides-Extra: sqlite Requires-Dist: peewee; extra == 'sqlite' huey - a little task queue ========================== .. image:: http://media.charlesleifer.com/blog/photos/huey-logo.png a lightweight alternative. * written in python (2.7+, 3.4+) * optional dependency on the Python Redis client 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 * retry tasks that fail automatically * task result storage * task locking * task pipelines and chains .. image:: http://i.imgur.com/2EpRs.jpg .. image:: https://api.travis-ci.org/coleifer/huey.svg?branch=master Huey's API ---------- .. code-block:: python from huey import RedisHuey, crontab huey = RedisHuey('my-app', host='redis.myapp.com') @huey.task() def add_numbers(a, b): return a + b @huey.periodic_task(crontab(minute='0', hour='3')) def nightly_backup(): sync_all_data() To run the consumer with 4 worker processes: .. code-block:: console $ huey_consumer.py my_app.huey -k process -w 4 To enqueue a task to add two numbers and print the result: .. code-block:: python res = add_numbers(1, 2) # Enqueues task. print(res.get()) # Prints "3". To schedule two numbers to be added in 10 seconds: .. code-block:: python res = add_numbers.schedule(args=(1, 2), delay=10) # Attempt to get result without blocking. print(res.get(False)) # returns None. # Block until result is ready and print. print(res.get()) # after 10 seconds, prints "3". Brokers ------- To use Huey with Redis (**recommended**): .. code-block:: python from huey import RedisHuey huey = RedisHuey() To use Huey with SQLite (`docs `_): .. code-block:: python from huey.contrib.sqlitedb import SqliteHuey huey = SqliteHuey('my-app-queue.db') To run Huey within the parent process using background greenlets (`docs `_): .. code-block:: python from huey.contrib.minimal import MiniHuey huey = MiniHuey() huey.start() # Spawns scheduler background thread and returns immediately. To run Huey with a simple Python broker (**should not be used in production**), install `simpledb `_ and run: .. code-block:: python from huey.contrib.simple_storage import SimpleHuey huey = SimpleHuey() # Be sure to run the Python broker process, e.g.: # $ python simpledb.py # Starts Python broker. Documentation ---------------- `See Huey documentation `_. Project page --------------- `See source code and issue tracker on Github `_. Huey is named in honor of my cat: .. image:: http://m.charlesleifer.com/t/800x-/blog/photos/p1473037658.76.jpg?key=mD9_qMaKBAuGPi95KzXYqg