CLI

fennel

fennel [OPTIONS] COMMAND [ARGS]...

dlq

Interact with the dead-letter queue. Choices for the action argument:

* read - Print all tasks from the dead-letter queue to stdout.
* replay - Move all tasks from the dead-letter queue back to the main task queue for reprocessing.
* purge - Remove all tasks from the dead-letter queue forever.
fennel dlq [OPTIONS] [read|replay|purge]

Options

-a, --app <application>

Required

Arguments

ACTION

Required argument

info

Print a JSON-encoded summary of application state.

fennel info [OPTIONS]

Options

-a, --app <application>

Required

task

Print a JSON-encoded summary of job information.

fennel task [OPTIONS]

Options

-a, --app <application>

Required

-u, --uuid <uuid>

Required

worker

Run the worker.

fennel worker [OPTIONS]

Options

-a, --app <application>

Required A colon-separated string identifying the fennel.App instance for which to run a worker.

If a file foo.py exists at the current working directory with the following contents:

>>> from fennel import App
>>>
>>> app = App(name="myapp", redis_url="redis://127.0.0.1:6379")
>>>
>>> @app.task
>>> def f():
>>>     pass

Then pass foo:app as the app option: $ fennel worker --app=foo:app

-p, --processes <processes>

How many executor processes to run in each worker. Default multiprocessing.cpu_count()

-c, --concurrency <concurrency>

How many concurrent consumers to run (we make at least this many Redis connections) in each executor process. The default, 8, can handle 160 req/s in a single worker process if each task is IO-bound and lasts on average 50ms. If you have long running CPU-bound tasks, you will want to run multiple executor processes. Default 8