A long-awaited feature thanks to @crmne on this release: instead of using a thread pool to run jobs in multiple threads per works, you can now use fibers on a single fiber reactor thread. To use this, you just need to specify the number of fibers instead of the number of threads in your worker configuration, like this:
It uses Async under the hood, so you need to have that as a dependency for it to work. Also, you need to be using fiber isolation in Rails (config.active_support.isolation_level`` = :fiber).
This can be very useful for I/O-bound workloads, such as those involving LLM calls.
Bumps solid_queue from 1.4.0 to 1.6.0.
Release notes
Sourced from solid_queue's releases.
... (truncated)
Commits
86f3d92Bump solid_queue to 1.6.02a479f6Document how to update dynamic recurring tasks7f59932Roll back transactions leaked by killed job threads in tests9c0d5d3Reorganize the execution pools under SolidQueue::Pool30b92caMove the fiber worker checks to Configuration6e27144Extract a base class for the execution pools08e6098Rescue only the code that runs with capacity reserved when posting000e8baReport errors escaping the execution future5270cc8Simplify worker initialization50468faStart the fiber pool's reactor lazily on first use