|The stupid question is the question not asked|
Re^6: Help designing a threaded serviceby Tommy (Chaplain)
|on Jan 26, 2014 at 20:08 UTC||Need Help??|
You wanna do thing the st hard way; have fun.......
It's actually out of a desire to avoid doing things the stupid way that I posted my question to the Monastery in the first place. An abundance of problems have been pointed out by several people -- problems that are already solved by existing "wheels" on the CPAN that I'd almost certainly be better off to not reinvent.
So my "sane" options are singular: to extend a given stable wheel (Net::Server?) via some sort of data/state sharing mechanism so that when any given listener is presented with a task ID, that it is able to retrieve the output of that task beginning from the last time it was polled. Designing and implementing that will be my biggest challenge. I still want to avoid using a database for this, but may have to fall back on that option.
As for the stupidity, the overhead of constantly polling the service every N seconds is a necessary evil that I see no way to avoid. The aces up my sleeve are that it's not going to have to expand beyond ~20 concurrent users for the foreseeable future, and it's on a very, very fast LAN. I've already personally seen Net::Server scale well past that kind of load on lesser networks.
I appreciate your insight BrowserUk, and that of all others who have joined in on the conversation.
A mistake can be valuable or costly, depending on how faithfully you pursue correction