This release adds the ability to specify modules to reload in the config
file as well as in the module itself. Docs below:

NAME
    Apache::Reload - Reload changed modules

SYNOPSIS
    In httpd.conf:

      PerlInitHandler Apache::Reload
      PerlSetVar ReloadAll Off

    Then your module:

      package My::Apache::Module;

      use Apache::Reload;
      
      sub handler { ... }
      
      1;

DESCRIPTION
    This module is two things. First it is an adaptation of Randal
    Schwartz's Stonehenge::Reload module that attempts to be a
    little more intuitive and makes the usage easier.
    Stonehenge::Reload was written by Randal to make specific
    modules reload themselves when they changed. Unlike
    Apache::StatINC, Stonehenge::Reload only checked the change time
    of modules that registered themselves with Stonehenge::Reload,
    thus reducing stat() calls. Apache::Reload also offers the exact
    same functionality as Apache::StatINC, and is thus designed to
    be a drop-in replacement. Apache::Reload only checks modules
    that register themselves with Apache::Reload if you explicitly
    turn off the StatINC emulation method (see below). Like
    Apache::StatINC, Apache::Reload must be installed as an Init
    Handler.

  StatINC Replacement

    To use as a StatINC replacement, simply add the following
    configuration to your httpd.conf:

      PerlInitHandler Apache::Reload

  Register Modules Implicitly

    To only reload modules that have registered with Apache::Reload,
    add the following to the httpd.conf:

      PerlInitHandler Apache::Reload
      PerlSetVar ReloadAll Off
      # ReloadAll defaults to On

    Then any modules with the line:

      use Apache::Reload;

    Will be reloaded when they change.

  Register Modules Explicitly

    You can also register modules explicitly in your httpd.conf file
    that you want to be reloaded on change:

      PerlInitHandler Apache::Reload
      PerlSetVar ReloadAll Off
      PerlSetVar ReloadModules "My::Foo My::Bar Foo::Bar::Test"

    Note that these are split on whitespace, but the module list
    must be in quotes, otherwise Apache tries to parse the parameter
    list.

  Special "Touch" File

    You can also set a file that you can touch() that causes the
    reloads to be performed. If you set this, and don't touch() the
    file, the reloads don't happen. This can be a great boon in a
    live environment:

      PerlSetVar ReloadTouchFile /tmp/reload_modules

    Now when you're happy with your changes, simply go to the
    command line and type:

      touch /tmp/reload_modules

    And your modules will be magically reloaded on the next request.
    This option works in both StatINC emulation mode and the
    registered modules mode.

AUTHOR
    Matt Sergeant, [EMAIL PROTECTED]

SEE ALSO
    Apache::StatINC, Stonehenge::Reload


-- 
<Matt/>

Fastnet Software Ltd. High Performance Web Specialists
Providing mod_perl, XML, Sybase and Oracle solutions
Email for training and consultancy availability.
http://sergeant.org | AxKit: http://axkit.org

Reply via email to