Comments (6)
This is one of the features which makes us rely on sidekiq currently. I would also like to see this being implemented in solidqueue.
from solid_queue.
Thanks for your kind words, @jpcamara! I really appreciate it 😊
We have batch support in our list of possible features to add, but it's not in the immediate plans because it's a bit at odds with the simplicity we're aiming for with Solid Queue. If you'd like to try implementing it, you're, of course, welcome to do so! 😊 I'm not quite sure yet how it could look like, in a way that maintains the overall simplicity of the gem, so I'm all open to ideas!
Thanks again!
from solid_queue.
Hi @rosa! I've opened a draft PR to introduce how I think batches could be implemented in SolidQueue: #142
Looking forward to feedback on whether it's the right direction or not, when you get some time!
from solid_queue.
@jpcamara You could take a look at https://github.com/cdale77/active_job_status. It's fairly simple, if it doesn't work with SolidQueue, it shouldn't be too hard to update it to work with SolidQueue as well.
from solid_queue.
Would be amazing to have this feature implemented in solid queue. Keeping my fingers crossed for it 🤞
from solid_queue.
I've been working on inkstak/activejob-status#32 and I just noticed 5ad8727 landed in main
.
It could be a relatively simple way to approach batches - a batch could just be a collection of a job statuses - with different combinations of statuses adding up to different final batch
statuses.
Here's my idea - The batch status can be queued
, failed
, completed
or working
.
- The batch is considered
queued
if all of the jobs arequeued
- The batch is considered
failed
if one of the jobs isfailed
- The batch is considered
completed
if all of the jobs arecompleted
- The batch is considered
working
in all other circumstances
On one hand, I dislike the solution we're currently using (with https://github.com/inkstak/activejob-status), because it relies on the cache for functionality - without the job status being stored in the cache, the application would simply break.
On the other hand, SolidQueue::Job#status
is implementation specific, and like @rosa said, it's
This is prone to race conditions and stale reads, and it's just intended
for use in Mission Control or other reporting tools, not for regular
operation.
Even though using the collection of job statuses is a simple and effective approach, I'm still not sure what would be the ideal way forward here.
from solid_queue.
Related Issues (20)
- Support for instrumenting polling? HOT 3
- unable to retry on SolidQueue::ProcessExitError HOT 2
- SolidQueue::ProcessExitError: HOT 3
- Existing migration not updated by bin/rails generate solid_queue:install HOT 5
- New queue_schema.rb file hardcodes Rails version HOT 6
- SQLite queue database corruption HOT 69
- `ActiveRecord::MismatchedForeignKey` in new migration file HOT 3
- Upgrading from 0.7 to 0.8 HOT 1
- Same database for queue HOT 3
- Running `rails db:migrate` clears out `queue_schema.rb`. HOT 32
- Need advice on Solid Queue's memory usage HOT 2
- No connection pool for 'SolidQueue::Record' found HOT 4
- Best way to play around with Solid Queue in development? HOT 1
- SolidQueue::Processes::ProcessExitError HOT 9
- Rethinking concurrency_limits#duration HOT 3
- The `queue` database is not configured for the `production` environment. HOT 2
- Memory Constrained environments HOT 10
- Single database schema maintenance story HOT 2
- Question: How to set process_alive_threshold or a global job timeout on a worker queue type? HOT 2
- Upgrade instructions unclear / Single database discouraged? HOT 1
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 solid_queue.