84 Followers
99 Following
87 Posts

Principal software engineer @Wealthbox.
Husband/Father. Health, travel, tech and Ruby enthusiast.

Tech blog at https://jpcamara.com

Jokes at https://logicalconclusionscomic.com

Bloghttps://jpcamara.com
Comichttps://logicalconclusionscomic.com
Currently in ActiveJob, `wait` in `retry_on` accepts a proc, but it is only handed the execution count. I think access to the error can also be useful when calculating the next wait time. If you agree, give it a like! https://github.com/rails/rails/pull/56601

It’s late, and you get alerts that web requests are failing. Page loads hang endlessly. The server isn’t responding, requests are queueing up. What do you do?!

"When good threads go bad" is a deep dive into stuck threads, how to deal with them, and what to avoid.

https://jpcamara.com/2025/12/30/when-good-threads-go-bad.html

When good threads go bad

👋🏼 This is part of series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into several parts: Your Ruby programs are always multi-threaded: Part 1 Your Ruby programs are always multi-threaded: Part 2 Consistent, request-local state Ruby methods are colorless The Thread API: Concurrent, colorless Ruby Bitmasks, Ruby Threads and Interrupts, oh my! (Concurrent, colorless Ruby) When good threads go bad (Concurrent, colorless Ruby) Thread and its MaNy friends (Concurrent, colorless Ruby) Fibers (Concurrent, colorless Ruby) Processes, Ractors and alternative runtimes (Parallel Ruby) Scaling concurrency (Streaming Ruby) Abstracted, concurrent Ruby Closing thoughts, kicking the tires and tangents How I dive into CRuby concurrency You’re reading “When good threads go bad”.

TIL if you want to return the duration in seconds, returning it as an Integer is a _hard_ requirement

There is a _specific_ check that the class is Integer. If you accidentally return a float, Sidekiq ignores it and reverts to its built-in delay policy. Be careful!

In Sidekiq, you can add a special method to your job class called `sidekiq_retry_in`. This method allows you to dynamically adjust retry behavior. For instance, based on the exception raised you can return a different duration in seconds. /1

If you are anywhere near SF Ruby Conf and haven't bought a ticket yet, the time is now! This conf is gonna be 🔥🔥🔥

https://sfruby.com/

San Francisco Ruby Conference 2025

Join us for the San Francisco Ruby Conference 2025: Building the Future with Ruby. November 19-20 at Fort Mason, San Francisco.

3️⃣ @jpcamara published a new article about Bitmasks, Threads and Interrupts: Concurrent, colorless Ruby

https://jpcamara.com/2025/10/22/bitmasks-threads-and-interrupts-concurrent.html

After a year hiatus, my series on all things Ruby concurrency is back! This post digs into the interrupt mechanism in Ruby threads. The interrupts revolve around bit masks, so it's got some Ruby bit work too!

Expect more regular updates from now on 💃

https://jpcamara.com/2025/10/22/bitmasks-threads-and-interrupts-concurrent.html

Bitmasks, Ruby Threads and Interrupts, oh my!

👋🏼 This is part of series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into several parts: Your Ruby programs are always multi-threaded: Part 1 Your Ruby programs are always multi-threaded: Part 2 Consistent, request-local state Ruby methods are colorless The Thread API: Concurrent, colorless Ruby Bitmasks, Ruby Threads and Interrupts, oh my! (Concurrent, colorless Ruby) When good threads go bad: Concurrent, colorless Ruby Thread signal handling: Concurrent, colorless Ruby Thread and its MaNy friends: Concurrent, colorless Ruby Fibers: Concurrent, colorless Ruby Processes, Ractors and alternative runtimes: Parallel Ruby Scaling concurrency: Streaming Ruby Abstracted, concurrent Ruby Closing thoughts, kicking the tires and tangents How I dive into CRuby concurrency You’re reading “Bitmasks, Threads and Interrupts, oh my!

@bensheldon lets talk ActiveJob batches at SF Ruby Conf next month!
SF Ruby with Irina and Vladimir - Remote Ruby

In this episode of Remote Ruby, Chris and Andrew chat with returning guests Irina Nazarova and Vladimir Dementyev to discuss the upcoming SF Ruby Conference, a vibrant event taking place in San Francisco on November 19-20, 2025. They delve into th...

Buzzsprout

Here is the solid queue batch implementation I created, if you're interested @bensheldon: https://github.com/rails/solid_queue/pull/142

Still waiting on feedback from Rosa, but I think this will be the general interface. Very much inspired by GoodJob

Batch Support by jpcamara · Pull Request #142 · rails/solid_queue

Support for batches in SolidQueue! Batches are a powerful feature in Sidekiq Pro and GoodJob which help with job coordination. A "Batch" is a collection of jobs, and when those jobs meet ...

GitHub