Code Monkey home page Code Monkey logo

huey's Introduction

huey - a little task queue

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

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

https://api.travis-ci.org/coleifer/huey.svg?branch=master

Huey's API

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:

$ huey_consumer.py my_app.huey -k process -w 4

To enqueue a task to add two numbers and print the result:

res = add_numbers(1, 2)  # Enqueues task.
print(res.get())  # Prints "3".

To schedule two numbers to be added in 10 seconds:

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):

from huey import RedisHuey

huey = RedisHuey()

To use Huey with SQLite (docs):

from huey.contrib.sqlitedb import SqliteHuey

huey = SqliteHuey('my-app-queue.db')

To run Huey within the parent process using background greenlets (docs):

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](https://github.com/coleifer/simpledb) and run:

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:

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

huey's People

Contributors

coleifer avatar jbaiter avatar antwan avatar camilonova avatar hgdeoro avatar 72squared avatar mtyaka avatar miohtama avatar oz123 avatar anentropic avatar asmedrano avatar angvp avatar bmcorser avatar qubitstream avatar iivvoo avatar joealcorn avatar lfriedrich avatar msabramo avatar martinmo avatar kmmbvnr avatar moises-silva avatar olamyy avatar psycojoker avatar geyser avatar swilcox avatar smarnach avatar mindojo-victor avatar antoviaque avatar averagehuman avatar kennell avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.