Skip to content

[14.0][IMP] queue_job: identity_key enhancements - #581

Merged
OCA-git-bot merged 2 commits into
OCA:14.0from
camptocamp:14-identity-key-fix
Nov 22, 2023
Merged

[14.0][IMP] queue_job: identity_key enhancements#581
OCA-git-bot merged 2 commits into
OCA:14.0from
camptocamp:14-identity-key-fix

Conversation

@simahawk

Copy link
Copy Markdown
Contributor

Replaces #544

@richard-willdooit sorry, I really need to move this fwd on both 14 and 16.
I kept your commit here and I just dropped the odoo version from the msg.
I also added a specific commit to drop the STARTED state to make prominent the motivation provided by @guewen on https://github.com/OCA/queue/pull/546/files#r1232041609 (whole comment in the commit description).

I can fwd port to v16 later.

@simahawk simahawk changed the title [IMP] queue_job: identity_key enhancements [14.0][IMP] queue_job: identity_key enhancements Nov 21, 2023
@OCA-git-bot

Copy link
Copy Markdown
Contributor

Hi @guewen,
some modules you are maintaining are being modified, check this out!

@simahawk

Copy link
Copy Markdown
Contributor Author

I've created #582 to follow up w/ the option to make states configurable per job.

@guewen

guewen commented Nov 21, 2023

Copy link
Copy Markdown
Member

Thanks! (To @richard-willdooit too)

@simahawk

Copy link
Copy Markdown
Contributor Author

Build fixed on #583

Richard deMeester and others added 2 commits November 21, 2023 18:13
1. In production, a job which is waiting dependencies or which
has started, but not completed, should not be repeated if
the identity_key matches.

2. In tests, the mock queue handler is now enhanced to allow
better mimicking of the identity_key blocks from production.

3. In tests, the mock queue handler now clears the enqueued jobs
after performing them, to better reproduce what a production
environment would do.
Good explanation from Guewen:

Depending on the use case, we should or should not include.
As part of my current work, I use Sidekiq daily.
They have a similar feature, but you can set a per-job parameter unique_until with options:
start (that would mean up to ENQUEUED here) or success (that would be up to STARTED here).

Think about this use case: a job refreshes a cache. Data have changed, we create a pending job. Data change again, no new job because the job is still pending.
Job starts. Data change while the job is running. In this very case, we'd like to enqueue a new job otherwise the cache will be outdated.

I reckon that both cases are valid, but I fear adding this state in the domain may, silently and in subtle ways, existing behaviors.
@simahawk
simahawk force-pushed the 14-identity-key-fix branch from bfb631c to 53bc60e Compare November 21, 2023 17:13
@simahawk

Copy link
Copy Markdown
Contributor Author

/ocabot merge minor

@OCA-git-bot

Copy link
Copy Markdown
Contributor

This PR looks fantastic, let's merge it!
Prepared branch 14.0-ocabot-merge-pr-581-by-simahawk-bump-minor, awaiting test results.

@OCA-git-bot
OCA-git-bot merged commit a7396ef into OCA:14.0 Nov 22, 2023
@OCA-git-bot

Copy link
Copy Markdown
Contributor

Congratulations, your PR was merged at 8240043. Thanks a lot for contributing to OCA. ❤️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants