Table Design

RecordId

Auto Increment
int (unisigned)
Primary Key

SettingName

varchar

SettingValue

text

Is A Setting Enabled?


	//----- CHECK IF UPLOADS ARE ENABLED CURRENTLY -----
	$QueryString = @mysql_query("SELECT SettingValue FROM tblApiSettings WHERE SettingName = 'ArchiveDataUploadsEnabled'");
	$result = @mysql_fetch_array($QueryString);
	$UploadsEnabled = $result['SettingValue'];
	$UploadsEnabled = filter_var($UploadsEnabled, FILTER_VALIDATE_BOOLEAN);
	if (!$UploadsEnabled)
		die("Quitting - Uploads import is currently disabled");

Is A Background Task Already Being Done (With timeout check)


	//----- CHECK IF THIS TASK IS ALREADY RUNNING CURRENTLY -----
	//(Started from an earlier CRON call)
	$QueryString = @mysql_query("SELECT SettingValue FROM tblApiSettings WHERE SettingName = 'ArchiveDataUploadsImportActive'");
	$result = @mysql_fetch_array($QueryString);
	$ArchiveDataUploadsImportActive = $result['SettingValue'];
	
	if ($ArchiveDataUploadsImportActive != "0")
	{
		$end = strtotime(date("Y-m-d H:i:s"));		//Now
		$start = strtotime($ArchiveDataUploadsImportActive);
		if ($start <= $end)
		{
			$no_of_minutes = ceil(abs($end - $start) / 60);   //ceil rounds the amount of days up to the next full day. Use floor if you want to get the amount of full days between the two dates.
			if ($no_of_minutes < 120)			//<<<Timeout, if longer than this many minutes has passed ignore the setting as old task must have died for some reason without clearing this
			{
				//----- UPLOADS IMPORT IS ALREADY ACTIVE -----
				die("Quitting - Uploads import is already active (started: " .$ArchiveDataUploadsImportActive . ")");
			}
		}
	}

	//----- FLAG THAT WE ARE ACTIVE CARRYING OUT IMPORT -----
	//(Stop other cron calls also doing this until we quit.  We use a timestamp to allow them to detect if something has gone wrong and too much time has passed)
	$TimeNow = date("Y-m-d H:i:s");
	$result = @mysql_query("UPDATE tblApiSettings SET
														SettingValue = '$TimeNow'
													WHERE SettingName = 'ArchiveDataUploadsImportActive'
														");


	//----- FLAG THAT IMPORT IS COMPLETE -----
	//(Remove block on other cron calls doing this task)
	$TimeNow = date("Y-m-d H:i:s");
	$result = @mysql_query("UPDATE tblApiSettings SET
														SettingValue = '0'
													WHERE SettingName = 'ArchiveDataUploadsImportActive'
														");

 

 

UK Electronic Designer
USEFUL?
We benefit hugely from resources on the web so we decided we should try and give back some of our knowledge and resources to the community by opening up many of our company’s internal notes and libraries through mini sites like this. We hope you find the site helpful.
Please feel free to comment if you can add help to this page or point out issues and solutions you have found, but please note that we do not provide support on this site. If you need help with a problem please use one of the many online forums.

Comments

Your email address will not be published.