On Oct 30, 2006, at 10:14 AM, Ahmad Al-Twaijiry wrote:
Hi everyone, I create a php script that will run every minute (by cronjob) and update some database tables (php 5, database mysql 5, tables type innodb) the problem is that I want this script to run only one at atime (only one process from this script can run ) for example, if the cronjob start the script and the script takes more than one minute, then after this one minute the cronjob start another process from this script, it should exit once it find there is an old process of it running) what I do now is that when the script start it will check for a tmp file (/tmp/script.pid) and if it fine it it will exit. if the file (/tmp/script.pid) is not exists, it will create it and start doing the database update and when the script finish it will remove the file any better idea ?
It sounds like how I'd approach it, but it depends somewhat on the type of updates your script is performing and how busy your website is. Plus, I'm curious, what kind of updates are needing to occur every 30 seconds? And, if your scripts are at risk of running for more than 30 seconds, does this mean that the volume of data you're working with end up building upon itself? Just wondering, because it sounds like you could end up hammering your database server.
-Ed -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php