Comments (3)
Thinking about this further it seems like attempts
has three distinct meanings:
- before performing task: "how many times the jobs is to be attempted before transitioning to a failed state"
- during task execution: "remaining attempts before giving up"
- after transitioning to
failed
: "indication that the task had one initial attempt"
from minion.
Happy to consider a PR.
from minion.
I'm a bit usure what would be the "correct" behaviour and even a solution that could be accepted. The way I see this issue it is hard to solve it witout introducing breaking changes in some way.
The simplest solution that I can think of would be to let attempts
reach zero when the last attempt is done and make sure that the documentation clearly say that attempts
denotes "the number of remaining attempts".
Another solution would be to make a distinction between "the number of attempts each job is configured with" and "the number of remaining attempts". This can be achieved by adding a new property of the job that hold the number of attempts that was initially configured for the job, which would not change during job execution / retries. Naming is hard but names such as total_attempts
, attempt_limit
or something of the sort could be considered. attempts
would then still signify "the number of remaining attempts" and would at time of enqueue()
be set to the same value as attempt_limit
, which whould default to 1
to keep things similar to how it is today. In any case I think I would like to see attempts
hit zero once all attempts were exhausted. The reason I'd like to see this separation of fields is that with this solution none of them would change what they signify during the job lifetime.
Do you have any thoughts or preferences here?
from minion.
Related Issues (20)
- Add a Minion guide HOT 2
- [Feature Request] Add search bar to Minion Admin site HOT 7
- fix typo at Minion::Guide HOT 1
- [Feature Request] ability to filter delayed jobs HOT 1
- popper.js not found HOT 2
- [Feature request] allow signals to be sent to workers as well HOT 5
- A Mojolicious app w/ Minion::Backend::Pg always connects to PostgreSQL db on startup HOT 2
- Repair may stuck when many failed jobs HOT 6
- Batch enqueue HOT 2
- linkcheck doesn't work - links never checked HOT 5
- Minion.unlock() concurrency HOT 4
- [Feature Request] Minion Backend list_jobs: using args as search filter HOT 5
- Minion::Admin can not remove retry inactive task HOT 6
- [Feature Request] Allow registering subclass of Minion::Job as task HOT 13
- [Feature Request] Include Test::Minion subclass/role of Test::Mojo HOT 10
- action buttons don't perform their actions, only redirect HOT 2
- Calling `finish`, `note` etc in task code fails on macOS while communicating over TCP HOT 6
- [Feature Request] Finalizier task for locks
- [ Feature request ] An event for progress? HOT 19
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from minion.