Laden...

Scheduler - Anwendung im Webserver..wie stelle ich sicher das die Anwendung nicht beendet wird?

Erstellt von Howard vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.831 Views
Howard Themenstarter:in
84 Beiträge seit 2007
vor 11 Jahren
Scheduler - Anwendung im Webserver..wie stelle ich sicher das die Anwendung nicht beendet wird?

Hallo liebe Leute,

ich habe hier eine Anwendung die bisher als Windowsdienst läuft. Nun sollte diese um Steuerung und eine gewisse Oberfläche erweitert werden und ich hatte mich entschlossen diese einfach direkt in einen IIS zu packen. Meine Idee: ich habe beides an einer Stelle zusammen die WebOberfläche UND den Scheduler "Dienst".

Was macht der Scheduler? Der ruft zu bestimmten (ca. 8 verschiedenen) Zeiten ProgramModule auf die wiederum ihr "eigenes Ding" machen.. (EMails versenden, DB Zugriffe usw.)

Soweit die Idee. Funktioniert auch alles supergut.. naja nicht alles sonnst wär ich ja nicht hier 😁

Das Problem ist das die Anwendung "nicht an" bleibt. Ich habe die Seite in einem eigenen Anwendungspool und hab auch (so denke ich jedenfalls) alles eingestellt das die Site NICHT "ausgeht"...

Habt ihr noch ne andere Idee? Oder ist es einfach ne blöde Idee sowas direkt im Webserver zu lösen? War so schön praktisch. Es greifen auch nur max. 3 Admins darauf zu also nix was ins Web an 100 User geht oder so...

16.828 Beiträge seit 2008
vor 11 Jahren

Naja, in der Theorie passt das alles (bis auf das, dass man eigentlich immer einen eigenen User pro Webapplikation verwenden sollte).
In der Praxis sieht das - wie Du nun merkst - oft anders aus.

Einen zuverlässigen Scheduler über den IIS laufen zu lassen ist quasi nicht möglich.
Man kann den Sleep-Mode zwar auf 0 setzen aber nicht deaktivieren. Wenn die Seite dementsprechend frequentiert ist kommt es aber eh nie zum Sleep-Zustand.

Die einzige wirkliche Lösung ist den Windows Scheduler zu nutzen, der eine Batch startet, der Deine Seite aufruft.
Kurioserweise ist genau dieser simple Weg auch die Lösung, die am meisten verbreitet ist, selbst in kommerziellen Server-Management-Lösungen wie Plesk.

Howard Themenstarter:in
84 Beiträge seit 2007
vor 11 Jahren

Iss jetzt nich dein Ernst.... HAHAHA wie geil is DAS denn?

also ich hatte sowas ja im Kopf aber dachte okay wenn ich **DAS ** frage wissen **alle **das ich **keine **Ahnung habe.... 😁

Okay ich check das mal aus und meld mich dann wieder...

Howard Themenstarter:in
84 Beiträge seit 2007
vor 11 Jahren

Okay ... der Taskplaner läuft ...

ABER 😁

gibts da irgendwie noch ne bessere Idee als in den Taskplaner "C:\Program Files (x86)\Internet Explorer\iexplore.exe" + WEBADRESSE einzutragen?
Oder ne Idee wie der dann wieder automatisch beendet wird?
Weil so hab ich ja irgendwann 4000x den IE im Hintergrund offen...iss ja auch nich soooo toll 8o

16.828 Beiträge seit 2008
vor 11 Jahren

Mh stimmt. Da muss ich mich korrigieren.
Ich hatte am Anfang "START <url>" in der Batch, aber mittlerweile mach ich ja was anderes... eben aus dem Grund der Instanzen.

Ich habe nun eine kleine Consolen-Anwendung, die mir direkt eine URL direkt aus dem Parameter entnimmt und via HttpWebRequest startet, um so die IE Instanz zu vermeiden.

 var request = WebRequest.Create( URL );

var response = request.GetResponse();

using ( var reader = new StreamReader( response.GetResponseStream() ) )
{
    reader.ReadToEnd();
}
S
167 Beiträge seit 2008
vor 11 Jahren

Hallo,

Plesk ruft keine Seite auf, sondern die php.exe mit dem passenden Script.

Du könntest eine simple Consolen Anwendung schreiben, welche die Urls aus einer config datei aufruft und sich dann beendet.

Iss jetzt nich dein Ernst.... HAHAHA wie geil is DAS denn?

Warum denn auch nicht? Gibt ja wohl wenig sinnloseres als den Windows Scheduler zu kopieren und permanent laufen zu haben, nur um einmal am Tag die Reports bauen zu lassen.

(Dass es andere Anforderungen geben kann wo es Sinn macht ist mir durchaus klar.)

16.828 Beiträge seit 2008
vor 11 Jahren

Plesk ruft keine Seite auf, sondern die php.exe mit dem passenden Script.

Gut, wir könnens auch genauer erklären.
Der Scheduler ruft die runtask.exe von Plesk auf, jedoch mit Parametern.

/c ""C:\Program Files (x86)\Parallels\Plesk\admin\bin\runtask.exe" "--application=C:\Program Files (x86)\Parallels\Plesk\admin\bin\php.exe" "--parameters=-q -dauto_prepend_file=\"\" -c php.ini \"C:\Program Files ^(x86^)\Parallels\Plesk\admin\plib\report\autoreport.php\" --auto weekly""

Da kann nun eine php.exe Dahinter stehen, muss aber nicht.
Zum Beispiel hab ich hier noch für jeden Webspace einen Task zum Call auf /http/index.htm (auch wenn es diese Datei gar nicht gibt).

Howard Themenstarter:in
84 Beiträge seit 2007
vor 11 Jahren

YO also **DAS ** hört sich dann ja mal wirklich gut an... ich danke dir sehr!!!