History

0.7.2 - unreleased

  • TBD

0.7.1 - 2024-04-05

  • Minor documentation clean-up and improvement

0.7.0 - 2024-04-05

  • Support Python 3.11, 3.12 and PyPy 3.9 (moving from 3.8)

  • Drop support for Python 3.7

  • Support KeyDB as a protocol-compatible alternative to Redis server (no code change i.e. previous versions also worked)

  • Switch to the official redis client (which aioredis was merged into) because yaaredis has been deprecated

0.6.0 - 2022-05-28

  • Support Python 3.10 and PyPy 3.8 (moving from 3.7)

0.5.0 - 2021-11-27

  • Switch to yaaredis because aredis is dead

  • Support Python 3.9

  • Drop support for Python 3.6 implementations

  • Bulk dequeue, requeue and release support

  • Rework dequeue routine

    • BRPOPLPUSH from the pending list to the dequeueing list to enable optimistic bulk dequeue. Extend the sweep script to handle unlikely but possible stale dequeueing task ids.

  • get_queue_stats and get_task_state return typing.NamedTuple instead of dict

0.4.0 - 2021-03-27

  • Switch to own exception types: TorrelqueError, TorrelqueLookupError and TorrelqueTimeoutError

  • Support PyPy 3.7

  • Add Heptapod/Gitlab CI/CD

0.3.1 - 2020-06-14

0.3.0 - 2020-05-21

  • Add Sphinx documentation and examples

  • Renames:

    • argument prefix to queue initialiser of torrelque.Torrelque

    • get_stats to get_queue_stats

    • get_task_stats to get_task_state

    • stale_timeout to task_timeout

  • Make task identifier atomic, move timeout into task state hash

  • New arguments:

    • delay argument to enqueue

    • pipeline argument to enqueue to support bulk enqueue via external pipline

    • task_timeout argument to requeue

    • interval argument to schedule_sweep

  • Raise TimeoutError and hide task_id is None from dequeue

  • Raise LookupError from get_task_state when task state key is not found

  • Introduce TorrelqueTaskStatus enumeration, returned from get_task_state

  • Log a warning when a pipeline returned unexpected counts for requeue and release, most likely caused by calling them on a non-existent task

  • Add pytype into lint Tox environment

  • Support PyPy3

  • Make default task timeout 5 minutes

  • Support task result on task torrelque.Torrelque.release()

  • Implement torrelque.Torrelque.watch()

0.2.0 - 2020-04-27

  • Switch to asyncio and aredis

  • Move to Heptapod

0.1.2 - 2016-01-18

  • Initial release