An extension and improvement of the Celery package to avoid duplicate tasks and view pending tasks in Django.
Project description
Celery SmartBase
celery-smartbase is an extension and improvement of the popular celery PyPI package. It provides features to avoid duplicates for tasks that are pending or running and to see the "pending" tasks as well in the "jobs" Django model when you integrate Celery with Django. Although this package is improved to work with Django, users can modify the features slightly to make it work with any Python framework, not just Django.
Table of Contents
- Celery SmartBase
- Features
- SmartBase Class
- Requirements
- Installation
- Usage
- Contributing
- License
- Acknowledgments
Features
- Avoid Duplicate Tasks: Prevents the creation of duplicate tasks that are either pending or running.
- View Pending Tasks: Allows you to see the "pending" tasks in the "jobs" Django model when you integrate Celery with Django.
These features are developed inside an extension of the BaseTask class of the existing Celery Python package. The extension class is called SmartBase.
SmartBase Class
The SmartBase class is an extension of the BaseTask class from the Celery package. Here is the code for the SmartBase class:
class SmartBase(BaseTask):
...
[Include the full code of the SmartBase class here]
Requirements
- Django
- djangorestframework
- django-model-utils
- django-celery-results
- django-celery-beat
- kombu
- celery
Installation
To install the celery-smartbase package, run the following command:
pip install celery-smartbase
Usage
To use the celery-smartbase package, you need to follow these steps:
-
Install the
celery-smartbasepackage using pip. -
In your Django project, create a
tasks.pyfile inside your app directory. -
In the
tasks.pyfile, import theSmartBaseclass from thecelery_smartbasepackage and define your tasks using theSmartBaseclass.
Here is an example of a tasks.py file:
from celery import shared_task
from celery_smartbase import SmartBase
@shared_task(base=SmartBase, name='add')
def add(x, y):
return x + y
In this example, the add task is defined using the @shared_task decorator with SmartBase as the base class.
- Start the Celery worker to process the tasks.
celery -A myproject worker --loglevel=info
Replace myproject with the name of your Django project.
Contributing
If you would like to contribute to the celery-smartbase package, please...
[Include information on how others can contribute to your package]
License
The celery-smartbase package is licensed under the...
[Include information about the license of your package]
Acknowledgments
[Include any acknowledgments or credits you would like to include]
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file celery-smartbase-0.3.5.tar.gz.
File metadata
- Download URL: celery-smartbase-0.3.5.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5eee3eee36573275cce36e5d11dc1447b2d08cc6e580fe3a0ce0f82373c1192a
|
|
| MD5 |
56293cdc1933c9d45e2ce45880492713
|
|
| BLAKE2b-256 |
478ea056879b866d83b35c0330642ae2fa255aefdf99f6f94b583f3089615ce2
|
File details
Details for the file celery_smartbase-0.3.5-py3-none-any.whl.
File metadata
- Download URL: celery_smartbase-0.3.5-py3-none-any.whl
- Upload date:
- Size: 5.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e91198d10c8f41d20faca2ebb4c68a3d8c51737f84123a91ffdb3e1c53e8e498
|
|
| MD5 |
6ef04fbae4de2147ad79abbeaa49a07f
|
|
| BLAKE2b-256 |
81886925b14f19d402cb08afe0c66678b43fb8bbefd3e24f64ec30d0f9b607a7
|