Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update dependency oban to v2.19.1 #76

Merged
merged 1 commit into from
Jan 27, 2025

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jan 16, 2025

This PR contains the following updates:

Package Type Update Change
oban (source) prod minor 2.18.3 -> 2.19.1

Release Notes

oban-bg/oban (oban)

v2.19.1

Compare Source

Bug Fixes
  • [Mix] Improve igniter installer idempotency and compatibility.

    The installer now uses on_exists: :skip when generating a migration, so it composes safely
    with other igniter installers. It also removes unnecessary add_dep calls that would overwrite
    a previously specified Oban version with ~> 2.18.

v2.19.0

Compare Source

Enhancements
  • [Oban] Start all queues in parallel on initialization.

    The midwife now starts queues using an async stream to parallelize startup and minimize boot
    time for applications with many queues.

  • [Oban] Safely return nil from check_queue/2 when checking queues that aren't running.

    Checking on a queue that wasn't currently running on the local node now returns nil rather
    than causing a crash. This makes it safer to check the whether a queue is running at all without
    a try/catch clause.

  • [Oban] Add check_all_queues/1 to gather all queue status in a single function.

    This new helper gathers the "check" details from all running queues on the local node. While it
    was previously possible to pull the queues list from config and call check_queue/2 on each
    entry, this more accurately pulls from the registry and checks each producer concurrently.

  • [Oban] Add delete_job/2 and delete_all_jobs/2 operations.

    This adds Oban.delete_job/2, Oban.delete_all_jobs/2, Engine callbacks, and associated
    operations for all native engines. Deleting jobs is now easier and safer, due to automatic state
    protections.

  • [Engine] Record when a queue starts shutting down

    Queue producer metadata now includes a shutdown_started_at field to indicate that a queue
    isn't just paused, but is actually shutting down as well.

  • [Engine] Add rescue_jobs/3 callback for all engines.

    The Lifeline plugin formerly used two queries to rescue jobs—one to mark jobs with remaining
    attempts as available and another that discarded the remaining stuck jobs. Those are now
    combined into a single callback, with the base definition in the Basic engine.

    MySQL won't accept a select in an update statement. The Dolphin implementation of
    rescue_jobs/3 uses multiple queries to return the relevant telemetry data and make multiple
    updates.

  • [Cron] Introduce Oban.Cron with schedule_interval/4

    The new Cron module allows processes, namely plugins, to get cron-like scheduled functionality
    with a single function call. This will allow plugins to removes boilerplate around parsing,
    scheduling, and evaluating for cron behavior.

  • [Registry] Add select/1 to simplify querying for registered modules.

  • [Testing] Add build_job/3 helper for easier testing.

    Extract the mechanism for verifying and building jobs out of perform_job/3 so that it's usable
    in isolation. This also introduces perform_job/2 for executing built jobs.

  • [Telemetry] Add information on leadership changes to oban.peer.election event.

    An additional was_leader? field is included in [:oban, :peer, :election | _] event metadata
    to make hooking into leadership change events simpler.

  • [Telemetry] Add callback powered logging for plugin events.

    Events are now logged for plugins that implement the a new optional callback, and exceptions are
    logged for all plugins regardless of whether they implement the callback.

    This adds logging for Cron, Lifeline, Pruner, Stager, and Reindexer.

  • [Telemetry] Add peer election logging to default logger.

    The default logger now includes leadership events to make identifying the leader, and leadership
    changes between nodes, easier.

  • [Telemetry] Add option to restrict logging to certain events.

    Logging in a busy system may be noisy due to job events, but there are other events that are
    particularly useful for diagnosing issues. This adds an events option to
    attach_default_logger/1 to allow selective event logging.

  • [Telemetry] Expose default_handler_id/0 for telemetry testing.

    Simplifies testing whether the default logger is attached or detached in application code.

Chores
  • [Peer] The default database-backed peer was renamed from Postgres to Database because it is
    also used for MySQL databases.
Bug Fixes
  • [Oban] Allow overwriting all insert/* functions arities after use Oban.

  • [Node] Correctly handle :node option for scale_queue/2

    Scoping scale_queue/2 calls to a single node didn't work as advertised due to some extra
    validation for producer meta compatibility.

  • [Migration] Fix version query for databases with non-unique oid

    Use pg_catalog.obj_description(object_oid, catalog_name), introduced in PostgreSQL 7.2, to
    specify the pg_class catalog so only the oban_jobs description is returned.

  • [Pruner] Use state specific fields when querying for prunable jobs.

    Using scheduled_at is not correct in all situations. Depending on job state, one of
    cancelled_at, discarded_at, or scheduled_at should be used.

  • [Peer] Conditionally return the current node as leader for isolated peers.

    Prevents returning the current node name when leadership is disabled.

  • [Testing] Retain time as microseconds for scheduled_at tests.

    Include microseconds in the begin and until times used for scheduled_at tests with a delta.
    The prior version would truncate, which rounded the until down and broke microsecond level
    checks.

  • [Telemetry] Correct spelling of "elapsed" in oban.queue.shutdown metadata.


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot changed the title chore(deps): update dependency oban to v2.19.0 chore(deps): update dependency oban to v2.19.1 Jan 27, 2025
@renovate renovate bot force-pushed the renovate/oban-2.x-lockfile branch from e66c6c3 to 21f3faf Compare January 27, 2025 12:22
@brunojppb brunojppb merged commit 7754db5 into main Jan 27, 2025
1 check passed
@renovate renovate bot deleted the renovate/oban-2.x-lockfile branch January 27, 2025 12:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant