pote / disc

Simple Disque-powered Ruby Jobs
MIT License
129 stars 6 forks source link

Use connection_pool as a dumb thread pool instead of Celluloid #13

Open foca opened 9 years ago

foca commented 9 years ago

Instead of depending on Celluloid, which is complex and way too much for what we actually nead, this sets up a ConnectionPool that checks out nothing (i.e. the connections are just true), so that we can abuse it as a thread pool.

This would always make the workers threaded (set DISC_CONCURRENCY=1 if you want a single thread...).

Having a single code path is good, though. It means it's simpler to test features / bugfixes as we don't need to run every test by duplicate on threaded/nonthreaded mode.

Oh, and speaking about tests, did I mention this is just a WIP? :P

cc @pote

pote commented 9 years ago

I think dropping Celluloid and having a single code path are good things, however I'd like to move to something that won't break the non-threaded mode at least, what are your thoughts on the stability and safety of using ConnectionPool? Should we keep this as a WIP for the time being until we cook up a more definitive solution?