Progress bar for Django Celery application
Project description
Django Celery Progressbar
Simple progressbar for a Django application with Celery. Uses database as a temporary storage.
Installation
Installation is as simple as installing a package from PyPi and applying migrations:
$ pip install django-celery-progresbar $ python manage.py migrate django_celery_progressbar
Usage
Typical usage on the side of Celery task would look like:
from django_celery_progressbar.bars import ProgressBar
from celery import shared_task
@shared_task
def do_something():
bar = ProgressBar(
task_id=do_something.request.id,
total=10,
step='Drying kelp...'
)
some_work()
bar.update(
progress='5',
step='Making sushi...'
)
some_more_work()
bar.progress.finalize()
To retireve current progressbar state, you can use built-in getter:
from django_celery_progressbar.bars import ProgressBar
bar = ProgressBar.get(task_id)
print(bar)
>>> 5 / 10 | Drying kelp...
# or as percent:
print(bar.as_percent)
>>> 50.0%
Keep in mind: as ProgressBar fetches DB object on creation, it is not updated dynamically.
Configuration
The following default settings can be overridden in your settings.py:
PROGRESSBAR_DEFAULT_TOTAL = 100
PROGRESSBAR_DESTROY_ON_EXIT = False
PROGRESSBAR_DYNAMIC_UPDATE = False
PROGRESSBAR_DEFAULT_TOTAL - Default value for ‘Total’ progressbar attribute PROGRESSBAR_DESTROY_ON_EXIT - Destroy model object on task completion PROGRESSBAR_DYNAMIC_UPDATE - Dynamically update progressbar DB object in runtime. You don’t need it turned on in stateless apps
License
Free software: MIT license
History
0.2.3 (2020-07-12)
added proper documentation
0.2.2 (2020-07-12)
added dynamic property to ProgressBar
0.2.1 (2020-07-12)
minor cosmetics
0.2.0 (2020-06-28)
added possibility for dynamic updates in runtime
added update() method to ProgressBar class
fixed a bug with finalize() method
0.1.1 (2020-06-28)
added as_percent attribute to ProgressBar class
added finalize() method to ProgressBar class
0.1.0 (2020-06-28)
First release on PyPi
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for django_celery_progressbar-0.2.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21574081d40c3814997d61bd63d950e940a489e70f68e6dd855f668ab3c9aa42 |
|
MD5 | 9633e0da1b21fee0e311b271b0493228 |
|
BLAKE2b-256 | 2bff2f5b69eefcfe4a713a6ec77982fc37ff2355b4a7a3ed1e4df001099029c6 |