Updated README

This commit is contained in:
Ilan Steemers
2015-06-24 12:37:27 +02:00
parent c91fd0f022
commit 2237f34e13
3 changed files with 43 additions and 20 deletions

3
.gitignore vendored
View File

@@ -59,4 +59,5 @@ target/
dev-requirements.txt
manage.py
testq
db.sqlite3
db.sqlite3
.venv

View File

@@ -9,11 +9,25 @@ Main focus will be put on creating tests now.
### Architecture
![Django Q schema](http://i.imgur.com/wTIeg2T.png)
### Usage
Schedule the asynchronous exectution of a function by calling `async` from within your Django project.
```python
async(func,*args,hook=None,**kwargs)
```
### Management commands
#### `qcluster`
Start a cluster with `./manage.py qcluster`
####`qmonitor`
You can monitor basic information about all the connected clusters by running `./manage.py qmonitor`
###Admin integration
Django Q registers itself with the admin page to show failed and succesful tasks.
From there task results can be read or deleted. If neccesary, failed tasks can be reintroduced to the queue.
### Signed Tasks
Tasks are first pickled to Json and then signed using Django's own signing module before being sent to a Redis list. This ensures that task packages on the Redis server can only be excuted and read by clusters and django servers who share the same secret key.
@@ -45,12 +59,5 @@ In case of a stop signal, the sentinel will halt the pusher and instruct the wor
Packages can be assigned a hook function, upon completion of the package this function will be called with the Task object as the first argument.
### Management command
Start the cluster with `./manage.py qcluster`
###Admin integration
Django Q registers itself with the admin page to show failed and succesful tasks.
From there task results can be read or deleted. If neccesary, failed tasks can be reintroduced to the queue.
### Todo
I'll add to this README while I'm developing the various parts.

View File

@@ -18,10 +18,37 @@ Architecture
:alt: Django Q schema
Django Q schema
Usage
~~~~~
Schedule the asynchronous exectution of a function by calling ``async``
from within your Django project.
.. code:: python
async(func,*args,hook=None,**kwargs)
Management commands
~~~~~~~~~~~~~~~~~~~
``qcluster``
^^^^^^^^^^^^
Start a cluster with ``./manage.py qcluster``
``qmonitor``
^^^^^^^^^^^^
You can monitor basic information about all the connected clusters by
running ``./manage.py qmonitor``
Admin integration
~~~~~~~~~~~~~~~~~
Django Q registers itself with the admin page to show failed and
succesful tasks. From there task results can be read or deleted. If
neccesary, failed tasks can be reintroduced to the queue.
Signed Tasks
~~~~~~~~~~~~
@@ -77,18 +104,6 @@ Hooks
Packages can be assigned a hook function, upon completion of the package
this function will be called with the Task object as the first argument.
Management command
~~~~~~~~~~~~~~~~~~
Start the cluster with ``./manage.py qcluster``
Admin integration
~~~~~~~~~~~~~~~~~
Django Q registers itself with the admin page to show failed and
succesful tasks. From there task results can be read or deleted. If
neccesary, failed tasks can be reintroduced to the queue.
Todo
~~~~