Metadata-Version: 2.1
Name: dj-tasks
Version: 2.0.0
Summary: A django app to run a collection of tasks in a management command.
Home-page: https://github.com/cfc603/dj-tasks
Author: Trevor Watson
Author-email: wtrevor162@gmail.com
License: MIT
Keywords: dj-tasks
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Django :: 3.2
Classifier: Framework :: Django :: 4.0
Classifier: Framework :: Django :: 4.1
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Description-Content-Type: text/x-rst
Requires-Dist: django (>=3.0)
Requires-Dist: django-model-utils (>=2.0)

=============================
dj-tasks
=============================

.. image:: https://badge.fury.io/py/dj-tasks.svg
    :target: https://badge.fury.io/py/dj-tasks

.. image:: https://github.com/cfc603/dj-tasks/workflows/Django%20CI/badge.svg
    :target: https://github.com/cfc603/dj-tasks/actions

.. image:: https://codecov.io/gh/cfc603/dj-tasks/branch/master/graph/badge.svg
    :target: https://codecov.io/gh/cfc603/dj-tasks

A django app to run a collection of tasks in a management command.

Documentation
-------------

The full documentation is at https://dj-tasks.readthedocs.io.

Quickstart
----------

Install dj-tasks::

    pip install dj-tasks

Add it to your ``INSTALLED_APPS``:

.. code-block:: python

    # project/settings.py
    INSTALLED_APPS = [
        ...
        'dj_tasks',
        ...
    ]

Create a task:

.. code-block:: python

    # your_app/tasks.py
    from dj_tasks.tasks import Task


    class YourTask(Task):

        name = "Your Task"
        frequency = 60

        def run(self):
            print("Your custom code...")

Add to your ``DJTASKS_TASKS`` settings:

.. code-block:: python

    # project/settings.py
    DJTASKS_LOCK_ID = "your_django_project"
    DJTASKS_TASKS = [
        "your_app.tasks.YourTask",
    ]


Running Tests
-------------

Does the code actually work?

::

    $ make install-dev
    $ make lint
    $ make test


Credits
-------

Tools used in rendering this package:

*  Cookiecutter_
*  `cookiecutter-djangopackage`_

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage



History
-------

2.0.0 (2022-09-25)
++++++++++++++++++

* handle exception when running individual tasks
* Drop support for django <3.2
* Add support for django 4.0 and 4.1

1.1.0 (2020-12-28)
++++++++++++++++++

* add documentation of ``DJTASKS_LOCK_ID`` to Quickstart
* update MakeFile to use current work flow
* close database connection after each full run
* add dj_tasks.tasks.DeleteOldTaskRunTask
* flake8 fixes
* add twine for easier releases
* move to GitHub Actions from Travis CI
* drop testing with tox

1.0.0 (2020-07-01)
++++++++++++++++++

* require setting ``DJTASKS_LOCK_ID``

0.1.0 (2020-06-05)
++++++++++++++++++

* First release on PyPI.


