Skip to content

v0.22.0

Choose a tag to compare

@TkTech TkTech released this 23 Mar 23:08
· 69 commits to main since this release
3e4bc66

This release requires that you run migrations, as it converts all JSON columns
to JSONB. Call chancy.migrate() or use the CLI:

chancy --app <your app> misc migrate
  • Chancy now starts some default plugins with reasonable defaults if they are
    not configured. This includes the Metrics, Leadership, Pruner,
    Recovery and WorkflowPlugin.
  • Queue's now support a resume_at option, which allows them to automatically
    go active after the specified time. This can be used to implement circuit
    breakers.
  • Added the convenience functions Chancy.pause_queue() and
    Chancy.resume_queue(). Calling this functions will emit queue.paused and
    queue.resumed events.
  • Plugins must now provide a get_identifier() method, which should return a
    unique identifier for the plugin.
  • Plugins may now implement get_depdenencies() to return a list of other
    plugins that they depend on.
  • The default queue polling interval for new queues has been increased from
    1 to 5 seconds.
  • All JSON columns have been converted to JSONB, which is more efficient and
    allows for indexing, and is supported by Django's JSONField type.

Metrics Plugin

  • Internal implementation of the Metrics plugin has been significantly
    simplified.
  • Metrics plugin now tracks job completion status on a per-queue basis as well
    as globally, which allows for the implementation of global, per-queue circuit
    breaker logic.

Django

  • Chancy now comes with a Django app that gives you ORM and Admin access to
    Chancy's data. To install it, add chancy.contrib.django to your
    INSTALLED_APPS.
  • The ProcessExecutor now has a django shim by default, simplifying setup.