Another thought would be to put a flag in your database that a waking process would check to see if there was another process already running.

Just as an aside, I once wrote an application similar to what you are describing where the client invoked CGI program did not directly update the database. Instead the updates were put into a staging table along with information telling another script who placed the updates there in the queue and another periodically run script did the actual updates. Additionally the client scripts would send a signal to the daemon that most of the time was ignored except when the daemon was "sleeping"

Now you are on XP so I don't know how this concept would port to your environment. If the concept of a service from NT made it over then your daemon would be a service.

Another scheme would be to write the updates to a spool directory and let your service pick up the updates from there and process them accordingly.


Peter L. Berghold -- Unix Professional
Peter at Berghold dot Net
   Dog trainer, dog agility exhibitor, brewer of fine Belgian style ales. Happiness is a warm, tired, contented dog curled up at your side and a good Belgian ale in your chalice.

In reply to Re: Ensuring only one copy of a program is running by blue_cowdawg
in thread Ensuring only one copy of a program is running by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.