Every invocation of the CGI has a 33% chance of forking a 'cleanup' child process
Wow .. 33%. That's pretty high. After three accesses, the odds are even that you will have run the cleanup. Your choice ..
If we become a cleanup process, somehow make sure we're the only one (-- how can I do this?)
You can use a lock file.
- Does the lock file exist? If so, someone else is already doing a cleanup.
- Create a randomly name lock file. Do more than one of them exist? If so, continue only if yours was the first one created; otherwise, delete the lock file .. someone else is already doing a cleanup.
- Do your cleanup, delete the lock file.
Cleanup process checks to see if there are any tasks past due, takes care of them and quietly exits
This is duplicating what cron does, so you may as well use their format to store tasks. I had a quick look at CPAN but didn't find anything that will handle cron format task list, but that's probably a good way to go, depending on the complexity of the task timing.
but my friends call me T.
Are you posting in the right place? Check out Where do I post X? to know for sure.
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
Want more info? How to link or
or How to display code and escape characters
are good places to start.