Comments (4)
Are you able to reproduce the issue? A sample code which fails would be helpful. I tested with hundreds of thousands jobs running in parallel (empty jobs to make sure they run and finish at the same time), but the issue never occurred.
Every job has a key in Redis, after the job finishes it gets marked in that key.
When A finishes, it marks itself as finished and checks if there are any child jobs with satisfied dependencies. If there are, then it queues them.
Same thing with B.
So if A finishes slightly sooner, it doesn't trigger child job since B is running.
And if B finishes last, then C's dependencies are satisfied and it gets queued.
from gush.
No, it's a completely theoretical question. I'm still wondering what would happen if they finish at precisely the same time.
from gush.
If they do finish at precisely the same time, then it is possible.
That said, I probably should add some mutex to job enqueuing to make sure they don't get enqueued twice. 👍
Thanks for bringing this up :)
from gush.
Closing as this wasn't actually spotted in actual apps using Gush.
from gush.
Related Issues (20)
- Allow redis 5 HOT 1
- Are you open for a Postgresql client? HOT 2
- Integration with sidekiq-status HOT 3
- Many mutex fails after #49000a30fd34ac21cabdc7d HOT 9
- Activejob callbacks not available in the Gush::Job
- Long-running jobs and human job completion HOT 11
- Jobs that eventually succeed will not queue downstream jobs HOT 6
- Gush.configure with namespace issue HOT 3
- Can we run same workflow parallelly with different arguments? HOT 1
- bundle exec viz workflow with parameters HOT 6
- Shortcircuit workflows HOT 16
- Cannot assign requested address - connect(2) for [::1]:6379 HOT 12
- Overlapping workflows HOT 1
- Update Gem on RubyGems HOT 3
- Project status HOT 8
- Can I create a dynamic workflow based on job's output? HOT 1
- Project Idea - Web UI HOT 1
- cannot create workflow instance HOT 2
- Dead Link to "Parallelizing Operations With Dependencies" by Stephen Toub
- Polling scenario in job HOT 5
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 gush.