Re: Ensure only one instance of a script is running
| From: | zini10 | Date: | Sun, 20 Mar 2005 11:07:56 +0000 |
| Subject: | Re: Ensure only one instance of a script is running | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-211131@lists.php.net to get a copy of this message | ||
a more reliable solution:
Write a lock file and update timestamp each minute or so ,(at varous places
around the script)
then in order to check if the script is already runninh, check the
timestamp.
"Jeremiah Fisher" <thisisroot@gmail.com> wrote in message
news:20050317141000.93781.qmail@lists.php.net...
> Test for a lock file when the script starts, and remove it when the script
> ends. This isn't 100% reliable, but it's the typical solution to this
> problem. If the script fails, the lock file may not be removed (ever have
> a Mozilla browser crash and tell you the default profile is locked?), so
> be careful with your error handling!
>
> <?php
>
> // test for lock file
> if ( !$f = fopen( 'lock', 'r')) {
> // touch the lock file
> $f = fopen( 'lock', 'w');
> fwrite( $f, 'lock');
> fclose( $f);
>
> } else {
> // lock file exists; another instance must be running (we hope)
> echo 'Error: An instance of this script is already running!';
> exit( 1);
>
> }
>
>
> /* script stuff */
>
>
> // remove the lock file for the next instance
> unlink( 'lock');
>
>
> ?>
>
> Shaun wrote:
>> Hi,
>>
>> I have a script that inserts data from files uploaded to our server. I
>> need to make sure that only one instance of this script runs at anyone
>> time, can anyone tell me how I can do this?
>>
>> Many thanks