Scriptverarbeitung eingestellt

Hallo zusammen,

wenn auch selten, aber hin und wieder stoppt die Scriptverarbeitung von selbst. Dann habe ich nur noch Einträge des "VariableManager " im Logfile.

Es liegt keine Fehlermeldung vor. Auffällig ist nur, dass kurz davor nur noch „ExecuteThreadID #9“ Einträge, also mit Nr. 9 da sind.

10 min vorher waren es noch die Nr 3 und 9 und noch 10min weiter zurück war noch die 1 dabei. Weitere 10 min vorher hat sich die Nr8 verabschiedet.

Hat jemand einen Tipp?

Gruss NBA

Hallo.

Was siehst Du in der PHP-Ansicht der Konsole? Sind da alle Threads belegt?

Grüsse.

… was ist denn die PHP-Ansicht der Konsole - wo finde ich die?

Dummerweise habe ich gerade den Rechner neu gestartet und wieder alles zum Laufen gebracht.

Gruss NBA

In der IPS-Konsole, Ansicht hinzufügen, PHP-Ansicht.

Da werden alle aktuell laufenden Threads angezeigt. Wenn das voll läuft weil da ein Script oder mehrere Vorgänge quer schießen dann geht nicht wirklich mehr was.

… nun ist alles untätig, was nach dem Neustart auch zu erwarten war.
Beim nächsten Mal schaue ich da hin.

Ist natürlich „unschön“, dass die Scriptverarbeitung sich selbst einstellt.

Gestern Abend habe ich kurz vor Ende noch schnell ein live-update gemacht. Da die Scriptbearbeitung sich um 2:30h verabschiedet hat, gibt es wohl keinen Zusammenhang.

Gruss und Danke
NBA

Hallo NBA,

normalerweise stellt sie sich ja nicht ein, es kann ja vorkommen das sich einige Skripte aus irgendwelchen Gründen nicht beenden. Die anderen Anforderungen reihen sich zwar ein da aber kein anderer Slot mehr frei ist wird auch kein Skript mehr ausgeführt.

Hallo.

Ich habe bei kritischen Skripten eine Doppelausführung über IPS_SemaphoreEnter ausgeschlossen.

Grüsse.

Hallo zusammen,

gestern abend hat sich die Scriptbearbeitung schon wieder eingestellt.
In der PHP Ansicht konnte ich das Script identifizieren, das daran Schuld war.

Es ist das Script, das alle 10min nach neuen POP3-Mails sucht.

Gestern um die Zeit, war bei mir ein Ausfall von Internet und Telefon. Vermutlich hat die „Nichterreichbarkeit“ des Email-Account alle ThreadIDs zum Blockieren gebracht.

Das Script basiert auf einer Vorlage hier aus dem Forum. Wo muss ich was einbauen, dass bei Ausfall des Internets die Scriptverarbeitung nicht eingestellt wird?

Gruss NBA

<?

require("28018.ips.php"); // Doppelte Sätze testen
require("56632.ips.php"); //Entscheidungstabelle für script-Starts per Mail
require("50136.ips.php"); //Logfile Eintrag in Datenbank




// Syntax der Betreffzeile
// Beschreibung .... #IPS[12345]

$script	 = "";
$betreff  = "";
$datum    = "";
$absender = "";
$inhalt   = "";
$satz     = "";
$MailArrayUID = "";

$POP3_ID = 35232 /*[.E-Mail\E-Mail empfangen\E-Mail empfangen (POP3)]*/;
$MailArray = POP3_GetCachedMails($POP3_ID);
for ( $x = 0; $x < count($MailArray); $x++ )
{

	$datum    = date("d.m.Y H:i:s", $MailArray[$x]['Date']);
	$absender = $MailArray[$x]['SenderAddress'] ;
	$betreff  = $MailArray[$x]['Subject'];
   $MailArrayUID = POP3_GetMailEx($POP3_ID,$MailArray[$x]['UID']);
   $inhalt   = substr($MailArrayUID['Text'],0,15) ;
	
	$satz = $datum. "; " .$betreff."; ".$inhalt."; ".$absender;
	// echo $satz . " 
";

	if (Satz_bekannt("A1",$satz)==false)
		{
		// echo "Satz ist neu 
";
		// Ist in Betreffzeile das Schlüsselwort
	   $k_auf = strpos($satz,"-ips-" );
		if ($k_auf > 0)
	   	{
	   	$script = substr($satz, $k_auf + 5 , 5);
	   	// echo "Skript: ".$script."
";

			// darf das script gestartet werden - und ist es vorhanden?
			if (script_mail($script, $absender))
				{
				logfile("42466","Emailprogrammstart durch ".$absender,$script);
				Ips_sleep(2000);
				IPS_RunScript($script);

				}

				
			}     // ende IPS-script im Betreff
		} 			// satz neu
} 				// ende FOR


// Anzahl der  Mails
SetValue(34178 /*[.E-Mail\E-Mail empfangen\E-Mail empfangen (POP3)\Anzahl-emails]*/,$x);

?>

Mach als Notlösung, vor Ausführen des restlichen Scripts eine Erreichbarkeitsabfrage email-Servers rein via „ping-Request“.

Hallo nancilla,

ich habe das hier mal meinem script vorangestellt:

 
$erg=Sys_Ping("pop3.web.de", 1000); //Max. 1 Sekunde warten
If ($erg)
{
.... restl. script
}

… und bin gespannt, obs hilft.

Vielen Dank und Frohe Weihnachten!!
Gruss NBA