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

[bump] introduce new version: 0.6 #459

Merged
merged 67 commits into from
Nov 28, 2024
Merged

[bump] introduce new version: 0.6 #459

merged 67 commits into from
Nov 28, 2024

Conversation

geofmureithi
Copy link
Owner

@geofmureithi geofmureithi commented Nov 27, 2024

New features

Removed

  • Job and Message traits in favor of Namespace
  • Dropped Executor for a simpler API, use worker.track + runtime::spawn
  • Benchmarks, to be moved to their own repo
  • Dropped tokio-comp and async-std-comp features.

Thanks to the contributors who helped on this one.

geofmureithi and others added 30 commits May 22, 2024 22:11
Breaking Changes:
- Dropped traits Job and Message, please use namespace
* fix: introduce namespace and codec config

* fix: missing apis
* api: for redis and sqlite

* Version: 0.6.0-alpha.1

Changelog:
- Redis storage doesnt require pool to be clone. Allows use of deadpool-redis among others.
- Namespace is picked by default for `new` methods.

* fix: docs and tests

* lint: cargo clippy and fmt

* postgres: add a listener example
* api: for redis and sqlite

* Version: 0.6.0-alpha.1

Changelog:
- Redis storage doesnt require pool to be clone. Allows use of deadpool-redis among others.
- Namespace is picked by default for `new` methods.

* fix: docs and tests

* lint: cargo clippy and fmt

* postgres: add a listener example

* bump: to v0.6.0-alpha.1
* feat: remove the `Clone` requirements for services

* test save

* fix: get buffered layer working

* update: remove clone & update api

* fix: tests and api

* lint: clippy fixes

* lint: cargo fmt
* fix: backend layers were not loaded

* fix: handle clone
* fix: mq ack

* lint: fmt
* fix: handle unwraps in storages

* fix: ensure no unwrap
* fix: better apalis deps allowing tree shaking for backends

* fix: remove backend features in the root crate
* fix: standardize backend for storage and mq

* fix: minor fixes
* fix: add missing exposed config

* fix: add getters
* Feature: Add a layer that catches panics

This allows preventing job execution from killing workers and returns an error containing the backtrace

* fix: backtrace as it may be different

* add: example for catch-panic

* fix: make  not default
* Feature: Save results for storages

Currently just the status is stored, this PR adds the ability to save the result

* fix: result from storage

* fix: kill and abort issue
geofmureithi and others added 28 commits August 2, 2024 08:50
* bump: to v0.6.0-rc.5

* fix: standardize codec usage

* lint: cargo fmt
* add: catch-panic example

* add: graceful shutdown example

* add: unmonitored example

* add: arguments example

* fix: minor updates

* fix: sql tests

* fix: minor updates
* fix: improve on benches

* fix: bench trigger

* fix: include tokio for sqlx

* fix: improve the benching approach

* fix: mysql api

* fix: redis api

* fix: improve bench approach, remove counter

* remove: setup

* remove: pg

* fix: pg

* fix: pg
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Geoffrey Mureithi <95377562+geofmureithi@users.noreply.github.com>
* fix: add some missing data required for dependency injection

* lint: clippy and fmt
* wip: introduce context to request

* fix: get request context working

* lint: cargo fmt

* fix: get tests compiling

* add: push_request and shedule_request

* fix: task_id for Testwrapper

* fix: minor checks and fixes on postgres tests

* fix: bug on postgres fetch_next
Problem: We are missing crucial `FromRequest` impls for:
- TaskId
- Attempt
- Namespace

Also removed `Context<E>`

Solution: Implement `FromRequest` for these Types.
* fix:[bug] include backend provided layer in service layers.

Problem:
The current worker logic is missing an implementation where the backend provided layer should be added to the service's layer.
This is a critical issue that affects all v0.6.0-rc-7 users and they should update as soon as a new release is done.

Solution:
- Add backend layers to service's layer.
- Add worker_consume tests on the storages to prevent regression on this.

* chore: comment an enforcement rule not yet followed by redis
So that a custom number of attempts can be configured:

  let mut ctx = SqlContext::new();
  ctx.set_max_attempts(2);
  let req = Request::new_with_ctx(job, ctx);
  storage.push_request(req).await.unwrap();

While the default is still to try up to 25 times:

  storage.push(job).await.unwrap();
Making sqlx accessible to users of apalis without requiring them to
explicitly add it as a dependency.
* feat: introducing WorkerBuilderExt which makes the work of building a new worker way easier.

* improve: worker api almost there

* fix: radical improvements and updates. Removed executor and got graceful shutdown working

* chore: deprecate register with count and force builder order

* chore: more improvements on the worker

* fix: allow DI for Worker

* add: get the task count by a worker

* lint: fmt and clippy

* fix: allow worker stopping
* fix: relax the api provided for sqlx req

* lint: clippy and fmt
* feat: add recovery of abandoned jobs to backend heartbeats

* lint: fmt

* fix: attempt to get tests passing

* fix: attempt to get tests passing

* fix: minor fix typo

* fix: minor different solutions

* fix: better handle attempts

* handle postgres edge case

* fix: better handling
* feat: allow backends to emit errors

* lint: fmt

* fix: pass in a reference to prevent mutation
* Feat: Introduce simple ability to pipe cron jobs to any backend

This feature allows you to quickly persist cron jobs guaranteeing they will be run and can be distributed

* lint: cargo fmt
@geofmureithi geofmureithi merged commit 6d6ed27 into main Nov 28, 2024
12 checks passed
@geofmureithi geofmureithi deleted the develop branch November 28, 2024 06:01
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.

5 participants