Hacker News new | ask | show | jobs
by pqdbr 358 days ago
Great writeup. I'd love to know more about how the Supervisor works, and how it. "fork[s] a separate process for each supervised worker/dispatcher/scheduler".

In a Rails app served with Puma, I've always had a hard time understanding what would be the canonical way for having a loop doing some periodic work.

I know Puma has plugin support but I don't see much documentation there.

Forking a process / threads is something that we're used having Rails / Puma take care for us.

Pressed for time and without having time to deep dive, we ended up settling with sidekiq-cron, and it's been serving us so nicely.

1 comments

Under the hood, it uses good ol' fork and keeps track of the generated process IDs.

It's surprisingly simple. You can check out the relevant source here: https://github.com/rails/solid_queue/blob/main/lib%2Fsolid_q...