Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Tasks überschneiden sich

Frage Microsoft

Mitglied: Lamerking

Lamerking (Level 1) - Jetzt verbinden

17.01.2006, aktualisiert 18.01.2006, 4087 Aufrufe, 7 Kommentare

Hallo zusammen,

ich habe folgendes Problem.
Ich habe unter Windows 2000 Server einen Task aufgesetzt, der automatisch eine Batch-Datei anstartet. Die Batch startet (vereinfacht gesagt) ein Programm, dass Aenderungen durchfuehrt.

Dieser Task soll in einem bestimmten Zeitabstand laufen. Die Aenderungen des Tasks bzw. der Batch dauern aber manchmal ziemlich lang oder ziemlich kurz. Das Problem an der Sache ist, dass der Task erneut gestartet wird, obwohl bereits eine Aenderung laeuft. Es laufen also auf einmal 2 Aenderung. Gibt es eine Moeglichkeit dem Task bzw. der Batch-Datei Parameter mitzugeben, damit der darauffolgnde Task wartet, bis die Aenderungsanwendung geschlossen ist?

Ich hoffe ich habe mich verstaendlich ausgedrueckt ;)

Danke schon mal.

Gruss
Tobias
Mitglied: 13100
17.01.2006 um 21:33 Uhr
1) überprüfe die existenz oder den inhalt der datei, die du unter punkt 3 anlegst.
2) wenn sie eine 1 beinhaltet oder existiert, dann brich ab, ansonsten setze fort.
3) schreibe eine 1 in eine datei (z.b. c:\status.txt).
4-499) exzessive batchnutzung nach deinem belieben
500) am ende des tasks/batch schreibst du eine 0 in die datei oder löscht
sie einfach wieder.


mit anderen worten, lässt du einfach einen oder auch mehrere taskzyklus
ausfallen, wenn der vorige noch nich abgeschlossen is, zu erkennen an der datei.
Bitte warten ..
Mitglied: Lamerking
18.01.2006 um 18:06 Uhr
Hi,

erstmal danke für deine Tipps.
Allerdings kann ich irgendwie nix damit anfangen ;)

1.) überprüfe die existenz oder den inhalt der datei, die du unter punkt 3 anlegst.

punkt3? was meinst du mit inhalt der datei?

2) wenn sie eine 1 beinhaltet oder existiert, dann brich ab, ansonsten setze fort.
Eine 1 beeinhaltet, hmmmmm???

Könntest du es evtl. mir etwas verständlicher erklären?

Danke schon mal.

Gruß Tobias
Bitte warten ..
Mitglied: 13100
18.01.2006 um 18:22 Uhr
ok, vergiss die eins, leg einfach eine datei an.
solange diese vorhanden is, weisst du, es rennt noch was.
also überprüfst du ganz am anfang, in deinem batch/task,
ob die datei da is, wenn dem so is muss dein script
abbrechen, andernfalls darf es bis zum ende ausgeführt
werden.

ich versuchs gleich nochmal, ganz knapp:

1) überprüfen ob datei existiert (ja = abbruch)
2) datei erstellen (echo > c:\woswas.txt)
3) die eigentliche arbeit erledigen
4) am ende die erstellte datei löschen (del woswasi.txt)

für "if exist" hab ich jetz gerad nich die syntax im kopf,
lässt sich aber sicher finden.
Bitte warten ..
Mitglied: Biber
18.01.2006 um 19:04 Uhr
Moin Lamerking,

ich kann zu Angels Lösung nur Handwerkliches hinzufügen.

::----snipp SimpleSemaphoreBsp.bat
@echo off & setlocal
Set "FlagFile=%temp%\FlagFile.txt"
Set "optionalerText=Nicht vergessen: Jaffa Cake und 3 Kefir von ALDI mitbringen."
if exist %FlagFile% goto :eof
echo %optionalerText%>%FlagFile%
Start /w D:\Eine\ProggiDatei.exe
del %Flagfile% >nul
::---snapp SimpleSemaphoreBsp.bat


Alternativ zu dieser Mimik könntest Du auch in der "Prozessliste" (das, was Du auch über den Taskmanager anschauen kannst) überprüfen, ob Dein eigentliches Programm aktiv ist. Wäre eine Spur zuverlässiger.
Angels Lösung hat ihren Schwachpunkt an der Stelle, an der Dein Proggi.exe einmal abstürzt. Dann wird u. U. auch der Batch nie fertig und die Flag-Datei nie wieder gelöscht.
Bis Du sie mal von Hand weglöscht.

Die Alternative hat allerdings ihre Schwachstelle an genau dem gleichen Punkt. Wenn Dein Proggi.exe "ohne Rückmeldung" tot überm Zaun und in der Prozessliste hängt, wird bis zur manuellen Entfernung nie ein zweiter gleichnamiger Prozess starten.

Also nimm die erste simple Variante.
Grüße Biber
<div align="center" style="width:100%; vertical-align:middle; background:silver; height:20px; border-style:solid; border-width:thin; border-color:#000000" dir="ltr" lang="de"><font size="1">Alles mit weniger als 50 Zeilen ist grundsätzlich ungetestet. Vor dem Starten System sichern.</font></div>
Bitte warten ..
Mitglied: Lamerking
18.01.2006 um 19:35 Uhr
Hi, wow super für deine Ausführungen!!!

Ich hätte es so realisiert:

if exist flagfile goto :eof
echo flagfile > flagfile
Aufgaben durchführen
del flagfile

Ich kann aber auch nicht scripten ;)
Die andere Variante würde mich aber schon mehr interessieren.
Könntest du die genauer erläutern?

Dank dir schon mal.

Gruß
Tobias
Bitte warten ..
Mitglied: 13100
18.01.2006 um 19:36 Uhr
Jaffa Cake und 3 Kefir - ich weiss nich was das is, aber es klingt wie biberfutter

legen wir noch einen scheit drauf:

&bull;) ins file wird das datum/zeit geschrieben.
&bull;) nach überprüfung der datei, überprüfst du das
datum mit dem aktuellen. wenn die differenz grösser als
x is, dann löscht du die datei und brichst ab.
&bull;) der nächste zyklus rennt dann wieder auf jedenfall.

x wird so definiert dass es eigentlich die längstezeit erledigt
sein sollte. kommt natürlich auch darauf an wie heikel und
zeitnah alles läuft/laufen muss.

in c++ bist du in dem fall wohl schnelle und besser beraten.
hier kannst du auch richtiges taskmanagement veranstallten.
man könnte auch von jeden, von deinem batch ausgeführten
programmteil einen rückgabewerte in die woswasi.txt schreiben,
aber jetz fang ich an zum übertreiben und höre deshalb auf,
bevor ich freidreh.
Bitte warten ..
Mitglied: Biber
18.01.2006 um 20:27 Uhr
@7203
...Biberfutter...
Ich drücke das gegenüber meiner Familie immer als "vegetarische und vitaminreiche Ernährung" aus.
Also nur Kekse mit Orangenfüllung und Kefir und Kaffee und Zigaretten.

@Lamerking

Dass ich sinngemäß geschrieben habe, "die kompliziertere Lösung über Prozessliste hat den gleichen Schwachpunkt" hattest Du aber mitgelesen, oder?

Unter XP wird schon ein Utility namens Tasklist.exe dabei; für alle Windowsversionen gibt es aber auch ähnliche Freeware-Utilities (pslist.exe, ps.exe,...etc.)

Du könnest also deren Output ( eine mehr oder weniger lange Liste von laufenden Prozessen) nach dem Namen Deines Proggi.exe durchsuchen.
:: Beispiel im Batch:
(TaskList | find /i "Proggi.exe" >nul) && goto :eof
...MachAufgaben...

Sprich: wenn "Proggi.exe" schon läuft, dann ("&&") Batch sofort beenden.
Mit Tasklist.exe könntest du theoretisch auch prüfen/filtern, ob die Proggi.exe ein "laufender" oder ein Prozess "ohne Rückmeldung" ist.

Aber da wir ja hier von M$-Windows reden, kann eben ein Prozess ohne Rückmeldung sehr wohl noch laufen (hat nur grad keine Kapazität frei zum Rückmelden) und ein "running prozess" in der Liste kann ebenso schon klinisch tot sein...
Mehr Sicherheit/Aussagekraft bekämst Du wirklich nur mit "echten" Programmiersprachen. Aber das ist ja für diesen Zweck etwas überdimensioniert.
Oder steuerst Du Satelliten mit diesem Batch oder ist das eine Kliniks-Narkose-Dosierung oder ähnliches?

Grüße Biber
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Windows Server
Scheduled Tasks (4)

Frage von derhoeppi zum Thema Windows Server ...

Windows Server
Mit welchem Benutzer Tasks ausführen (5)

Frage von inno-it zum Thema Windows Server ...

Apache Server
Webserver 75 aktive Tasks Verdacht auf Schadscripte (24)

Frage von wescraven07 zum Thema Apache Server ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...