![]() |
Procedurestart zu bestimmten Zeitpunkt
Tag zusammen,
ich stehe gerade wieder auf dem Schlauch. Wie schaffe ich eine Systemressourcen sparende Lösung, eine Procedure um eine bestimmte Zeit zu starten. Gruss |
Re: Procedurestart zu bestimmten Zeitpunkt
Hi... wie wäre es mit einem geplanten task?
Gruß angos |
Re: Procedurestart zu bestimmten Zeitpunkt
eher schlecht, weil das Teil als Dienst auf einem Server laufen soll.
|
Re: Procedurestart zu bestimmten Zeitpunkt
Evtl. den Prozess (besser vermutlich Worker-Thread) entsprechend schlafen legen um "Gewünschte zeit"-Now
|
Re: Procedurestart zu bestimmten Zeitpunkt
In einem Timer die Uhrzeit abfragen? Oder wäre das zu einfach? Ich glaube, ich verstehe mal wieder das Problem nicht <g>
|
Re: Procedurestart zu bestimmten Zeitpunkt
Ok, nochmal. Aber evtl. stehe ich ja auch gerade auf dem Schlauch. Es kann durchaus eine einfache Lösung geben. Aber ich sehe sie gerade nicht.
Ich will um 23 Uhr alle Dateien in einem Verzeichnis löschen. Zum rekursiven löschen habe ich eine Procedure geschrieben. nun muss diese aber vor dem Backup um 23.00 Uhr laufen. |
Re: Procedurestart zu bestimmten Zeitpunkt
Wurde ja schon einen Beitrag weiter oben beschrieben:
In einem Timerereignis zyklisch prüfen wie spät es ist und zum gegebenen Zeitpunkt zuschlagen. Wenn es nicht allzu genau sein muss, dann reicht es ja den Timer alle Minute aufzurufen. |
Re: Procedurestart zu bestimmten Zeitpunkt
Ich würde die aktuelle Zeit nehmen und den Interval des Timers auf die restliche Zeit setzen, wann das Programm gestartet werden soll...
|
Re: Procedurestart zu bestimmten Zeitpunkt
Und was mache ich morgen?
Ich will das Programm nicht jeden Tag um die selbe Uhrzeit starten. |
Re: Procedurestart zu bestimmten Zeitpunkt
Zitat:
Wenn man bei geplante Tasks einen Neuen anlegt, dann wird man auch nach einem Benutzerkonto gefragt, unter dem das Programm ausgeführt werden soll. Für für solche administrativen Aufgaben ein eigenes Programm schreibt, anstatt den Taskplaner Dienst zu benützen, der hat den Sinn & Zweck des Taskplaners nicht verstanden. :warn: Man schreibt einfach eine Datei mit der Endung .CMD mit folgendem Inhalt:
Code:
und lässt die CMD-Datei vom Taskplaner ausführen. Fertig !
@echo off
dir C:\backups >C:\backups\del.log del C:\backups\*.bak |
Re: Procedurestart zu bestimmten Zeitpunkt
Zitat:
Zum nutzen des Taskplanerdienstes muss ein User eingeloggt sein, welches auf dem Server nicht unbedingt gegeben ist. Noch ne Idee? |
Re: Procedurestart zu bestimmten Zeitpunkt
Hi :-)
Auf dem Server muss kein User eingeloggt sein. Ich nutze immer den Taskplaner um Daten von einer Festplatte auf eine andere zu kopieren um eine bestimmte Uhrzeit. Das ganze läuft auf einem Windows Server 2008. Gruß Hudel |
Re: Procedurestart zu bestimmten Zeitpunkt
Zitat:
Gib doch einfach im Taskplaner das Administrator Konto an, dann wird die CMD ausgeführt (auch wenn niemand angemeldet ist !!) Aus Sicherheitsgründen kann man auch ein anderes Konto verwenden, denn falls jemand die CMD-Datei verändert, könnte er damit Admin-Rechte erlangen. Aber man kann sich ganz einfach dagegen schützen: die CMD-Datei darf nur von dem Benutzerkonto ausgeführt und geschrieben werden, das im Taskplaner eingetragen ist. (rechter Mausklick auf die Datei -> Eigenschaften -> Sicherheit ) |
Re: Procedurestart zu bestimmten Zeitpunkt
Ich scheine ja echt die letzten Jahre gepennt haben, aber auf einem W2k Server mit den geplanten Tasks ein Batch Datei ausführen, klappt bei mir immer nur wenn ein User eingeloggt ist (egal ob an der Konsole oder per Terminalclient).
:gruebel: |
Re: Procedurestart zu bestimmten Zeitpunkt
Zitat:
(seltsamerweise wird bei einem Doppelklick auf eine BAT-Datei aber auch cmd.exe verwendet) Wenn die Dateiendung *.CMD ist, wird cmd.exe mit den erweiterten Funktionenen verwendet. Also eine CMD-Datei aus dem Taskplaner heraus gestartet klappt bei mir auf WinXP. |
Re: Procedurestart zu bestimmten Zeitpunkt
XP ist ein ganz anderes Thema. Da funzt es auch bei mir.
Es geht um einen W2k Server anwelchem kein User eingeloggt ist. Und da hilft, meiner Erfahrung nach, euch keine CMD Extension. Ich habe jetzt einfach einen Timer eingebaut, der die Logs viermal am Tag eliminiert. Und somit auch kurz vor der Datensicherung. Über einen weiteren Vorschlag würde ich mich aber trotzdem freuen, da das Thema mit Sicherheit bei mir nochmals auftaucht. Gruss |
Re: Procedurestart zu bestimmten Zeitpunkt
Falls das Programm permanent läuft, bietet sich ein Waitable Timer an. Schau einfach mal bei Microsoft vorbei.
|
Re: Procedurestart zu bestimmten Zeitpunkt
Danke für den Tip. Das sieht doch gut aus.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz