Hi all,

I'm looking for some suggestions on a problem I'm looking at. I have a mod_perl handler running that sends out certain push messages (could be e-mail, could be an http post etc.) for several customers that are identified by a unique identifier.

Examples:

http://my.server.com/myhandler?target=customerA&data=sendthis

http://my.server.com/myhandler?target=customerB&data=sendthat

Now what I want to do is restrict the number of concurrent running requests per customer. For example, if 5 apache children are running my handler on behalf of customer A, I want my handler to do something else with a new request for customer A. I don't want to throw away the 6th request but slap it in some queue for later processing.

I looked at mod_throttle and similar offerings but they tend to throw away requests when there are too many concurrent requests or when bandwidht is higher than some defined max.. That's not what I want.

What I really need is some form of IPC between apache children so one child can find out what other children are currently doing.

I've been thinking about IPC::Shareable but I have had some bad experience with it (longish ago though).

Anyone got some pointers for me to look at? Is there something hidden in the Apache API that I might use from mod_perl?

Regards,

Bas.


Reply via email to