KQ v2.0.1 Release Notes

Release Date: 2020-08-31 // about 1 year ago
    • ➕ Added official support for Python 3.8.
    • ⬆️ Bumped up dependency versions (kafka-python>=2.0.0 and dill>=0.3.2).
    • 👷 Flush producer to ensure jobs are sent to the topic immediately.

Previous changes from v2.0.0

    • ⬇️ Dropped support for Python 2.7 and Python 3.4. This was to keep the code cleaner, reduce future development/maintenance workload for myself, and be ready for Python 2.x phaseout (albeit a little early).
    • Completely overhauled the library and improved the API. Changes are not backward compatible. Some notable changes include:
      • Ability to inject your own kafka-python producers and consumers into KQ queues and workers respectively. See here for an example.
      • Ability to specify the timeout, key and partition when enqueueing a job with new Queue.using method.
      • Ability to inject your own serializer/deserializer. See here for more details.
      • Removed the kq command line tool. Users should define an executable Python module themselves (see example here). Main reason for this was that the command line tool was not very useful: if users wanted to configure their consumers and callback functions, they had to define a configuration module and import it using the kq command line tool. This only added more room for user errors and hard-to-debug exceptions during the import, without providing much benefits over simply defining a module and calling Worker.start directly.
    • 📚 Please check out the documentation for new usage examples and API specifications.