tgext.huey is a TurboGears2 extension
tgext.huey can be installed from pypi:
pip install tgext.huey
should just work for most of the users.
To enable tgext.huey put inside your application
config/app_cfg.py
the following:
import tgext.huey tgext.huey.plugme(base_config)
or you can use tgext.pluggable
when available:
from tgext.pluggable import plug plug(base_config, 'tgext.huey')
To use tgext.huey create a huey instance using one of the following options:
# SQlite from tgext.huey.huey import SqliteHueyApp huey = SqliteHueyApp() # This is equivalent to huey = SqliteHueyApp( filename="huey.db", cache_mb=8, fsync=False ) # Redis from tgext.huey.huey import RedisHueyApp huey = RedisHueyApp() # This is equivalent to huey = RedisHueyApp( host="127.0.0.1", port="6379", password=None, db=0 ) # MemoryHuey from tgext.huey.huey import HueyApp huey = HueyApp() # This option is meant to be used during tests.
When you have created your HueyApp you can create and start the consumer using:
huey.start_consumer(workers=2) # This will create (if it doesn't exists) # and start a consumer that will use 2 workers
If you want to stop the consumer you can just use:
huey.stop_consumer() # This will stop the consumer
Here is an example of periodic and simple tasks:
# Simple task @huey.instance.task() def add(a, b): return a + b # Periodic Task from huey import crontab @huey.instance.periodic_task(crontab(minute='*/3')) def every_three_minutes(): print('This task runs every three minutes')