Nginx + embedded perl, sharing variables across workers

Hi,

I have written a perl handler that generates a random value and needs to
maintain the same value consistently across all other perl handlers (as
there is 1 perl handler per nginx worker) until the workers are
restarted;

I’ve attempted to do so by issuing $r->variable(‘varname’, $rand) to no
avail - is it impossible to set a variable defined in nginx.conf and
have the new setting affect any further reads of that variable from
other workers?
Which options do I have if I’d like to share $varname across multiple
perl handlers?

Thanks!
Yuri

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,188905,188905#msg-188905

Hello!

On Wed, Apr 06, 2011 at 05:28:51PM -0400, yuri wrote:

other workers?
Which options do I have if I’d like to share $varname across multiple
perl handlers?

Request variables ($r->variable) are per-request, not even
per-worker. Normal perl variables are per worker as worker uses
one perl interpreter.

To share data between multiple workers use normal IPC facilities
provided by perl (but keep in mind blocking for too long isn’t
good idea). Something like IPC::Shareable / IPC::Mmap::Share
should do the trick.

Maxim D.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs