Metadata-Version: 2.1
Name: dramatiq-abort
Version: 1.1.0
Summary: Dramatiq middleware to abort tasks.
Home-page: https://github.com/flared/dramatiq-abort
Author: Flare Systems Inc.
Author-email: oss@flare.systems
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Development Status :: 4 - Beta
Classifier: Topic :: System :: Distributed Computing
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: dramatiq
Provides-Extra: all
Requires-Dist: gevent (>=1.1) ; extra == 'all'
Requires-Dist: redis (<5.0,>=2.0) ; extra == 'all'
Provides-Extra: dev
Requires-Dist: gevent (>=1.1) ; extra == 'dev'
Requires-Dist: redis (<5.0,>=2.0) ; extra == 'dev'
Requires-Dist: flake8 ; extra == 'dev'
Requires-Dist: flake8-bugbear ; extra == 'dev'
Requires-Dist: flake8-quotes ; extra == 'dev'
Requires-Dist: isort ; extra == 'dev'
Requires-Dist: mypy ; extra == 'dev'
Requires-Dist: types-redis ; extra == 'dev'
Requires-Dist: black ; extra == 'dev'
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'
Requires-Dist: tox (>=3.14.0) ; extra == 'dev'
Requires-Dist: sphinx ; extra == 'dev'
Requires-Dist: sphinx-autodoc-typehints ; extra == 'dev'
Requires-Dist: build ; extra == 'dev'
Requires-Dist: wheel ; extra == 'dev'
Requires-Dist: twine ; extra == 'dev'
Provides-Extra: gevent
Requires-Dist: gevent (>=1.1) ; extra == 'gevent'
Provides-Extra: redis
Requires-Dist: redis (<5.0,>=2.0) ; extra == 'redis'

# dramatiq-abort

Add the aborting feature to [dramatiq] through a simple middleware with flexible backend.

Current version support aborting using the [Redis] store.

[![Build Status](https://github.com/Flared/dramatiq-abort/workflows/Push/badge.svg)](https://github.com/Flared/dramatiq-abort/actions?query=workflow%3A%22Push%22)
[![PyPI version](https://badge.fury.io/py/dramatiq-abort.svg)](https://badge.fury.io/py/dramatiq-abort)
[![Documentation](https://img.shields.io/badge/doc-latest-brightgreen.svg)](http://flared.github.io/dramatiq-abort)

## Installation

Since the only available backend right now is [Redis]:

    pip install dramatiq_abort[redis]

**Documentation**: http://flared.github.io/dramatiq-abort


## Quickstart

```python

from dramatiq import get_broker
from dramatiq_abort import Abortable, backends, abort

abortable = Abortable(backend=backends.RedisBackend())
get_broker().add_middleware(abortable)

# ...

import dramatiq

@dramatiq.actor
def my_long_running_task(): ...

message = my_long_running_task.send()

# Now abort the message.
abort(message.message_id)
```

[Redis]: https://redis.io
[dramatiq]: https://dramatiq.io/

