Skip to main content

Django Celery Progressbar

https://travis-ci.org/mora9715/django-celery-progressbar.svg?branch=master https://badge.fury.io/py/django-celery-progressbar.svg

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

Release files for django-celery-progressbar 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-celery-progressbar 0.2.3
File Size Uploaded
django_celery_progressbar-0.2.3.tar.gz 5.9 kB Details

Release files / django_celery_progressbar-0.2.3.tar.gz

Download URL django_celery_progressbar-0.2.3.tar.gz
Size 5.9 kB
Tags Source
SHA-256 checksum
How to use checksums
21574081d40c3814997d61bd63d950e940a489e70f68e6dd855f668ab3c9aa42
BLAKE2b-256 checksum
How to use checksums
2bff2f5b69eefcfe4a713a6ec77982fc37ff2355b4a7a3ed1e4df001099029c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.6.7

Release history Release notifications | RSS feed

This release

0.2.3 This release

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page