The quickest way to setup async tasks with Django.
Project description
Django Quick Queue
Django Quick Queue is a fast and simple way to use async tasks in Django. This package has a limited use case. If you are looking for a more complex async task systems you should try Django Q, Celery, or Huey. Quick Queue is meant to give you the simplest method to started executing small asynchronous tasks.
Installation
1. Install Package
pip install quickq
2. Add Base URL to settings.py
QQ_BASE_URL = 'https://mysite.example.com'
3. Setup the view in your urls.py
from quickq import taskinator
urlpatterns = [
url(r'^taskinator/(\S+)$', taskinator, name="taskinator"),
...
]
4. Add the Task decorator to any function
from quickq import Task
@Task()
def send_approved (name, slug, email):
send_mail(
'Yay E-mail!',
message,
settings.DEFAULT_FROM_EMAIL,
[email],
fail_silently=False,
)
# With a custom Timeout
@Task(timeout=120)
def another_task ():
do_stuff()
5. Execute your task as normal
send_email('Narf', 'narf-me', 'narf@aol.com')
How it Works
Your task is called
A PyJWT is generated.
The taskinator URL is called asynchronously.
Taskinator view executed
Decodes the JWT.
Excutes the original task function outside of the original request.
Limitations
Function arguments are converted to JSON so they must be JSON compatible.
Request time may be limited. If your webserver has a limitation on request time then that will also affect how long your tasks can execute since they are simply web requests. The request is also limited by the QQ_REQUEST_TIMEOUT setting.
Additional Settings
QQ_TOKEN_EXPIRATION: Default 60 QQ_TOKEN_ALGORITHMS: Default ['HS256'] QQ_URL_NAME: Default 'taskinator' QQ_REQUEST_TIMEOUT: Default 60
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for quickq-17.8.5-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41161ea0967be2893b23375078116ce57f955d6d76be81dce73e9943e07a8a1e |
|
MD5 | a5687bb8c5227aa93d7abf2d2336a800 |
|
BLAKE2b-256 | cb00b1bafd636e1a8dd5e095fc39294e8e1f0ea4713e8ee4fa0696468b73e0a8 |