AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Services nur zu einem Zeitfenster den Stop zulassen
Thema durchsuchen
Ansicht
Themen-Optionen

Services nur zu einem Zeitfenster den Stop zulassen

Ein Thema von Gremlin · begonnen am 7. Mär 2007 · letzter Beitrag vom 7. Mär 2007
Antwort Antwort
Gremlin

Registriert seit: 18. Apr 2006
Ort: Im Süden
176 Beiträge
 
Delphi 7 Enterprise
 
#1

Services nur zu einem Zeitfenster den Stop zulassen

  Alt 7. Mär 2007, 17:28
Hallo,

ich hab hier einen kleinen Service, der nur zu einem bestimmten
Zeitfenster beendet werden darf, dh. ich möchte nur dann den
Stop über den Dienstemanager zulassen, wenn es wirklich geht und
der Dienst sich gefahrlos beenden kann.
Sollte dies momenten nicht möglich sein, dann sollte der Dienst
sich nicht beeenden, aber wenigstens versuchen seine Tätigkeit zu
beenden um bei einem 2. Stop-Aufruf für das Ende vorbereitet zu sein.

Dienst startet
- wartet auf Zeitpunkt (kann beendet werden)
- Zeitpunkt eingetroffen, Haupttätigkeit ausführen (kann nicht beendet werden)
- Haupttätigkeit ausführen + 1. Stopsignal (versucht sein Tätigkeit zu beenden)
- Haupttätigkeit ausführen + 2. Stopsignal (beendet wenn möglich)
- Dienst wartet auf neuen Zeitpunkt (wenn nicht gestoppt)


Das Problem ist folgendes:

Wenn ich das 1. mal Stop drücke, so setze ich im Stop-Event des
Dienstes die Variable Stopped auf False. Der Dienstemanager gibt
dann eine Fehlermeldung zurück. Versuche ich gleich darauf noch
einmal den Dienst zu beenden und der Dienst ist immer noch nicht
dazu bereit, dann erscheint wieder eine Fehlermeldung, aber der
Dienst ist trotzdem beendet. Wie kann ich dies verhindern


Gruss Gremlin.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Services nur zu einem Zeitfenster den Stop zulassen

  Alt 7. Mär 2007, 17:50
Hallo,

ich glaube nicht, dass es unter Windows möglich ist,
das Stoppen zu verhindern.
Stell dir einen wildgewordenen Dienst vor
und der Admin kann den nicht Stoppen/Beenden.

Du du das wegen "Haupttätigkeit soll nicht unterbrochen werden"
brauchst, würde ich versuchen, die Arbeit in kleinere Häppchen
zu unterteilen (serialisieren).
Die Zwischenergebnisse packst irgendwohin (registry ?)
und protokollierst so mit, wie weit der Dienst gekommen ist.


Heiko
Heiko
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#3

Re: Services nur zu einem Zeitfenster den Stop zulassen

  Alt 7. Mär 2007, 19:26
Hm, also ich hab in Erinnerung, schon solche widerspenstigen Dienste gehabt zu haben, die sich nur durch einen Systemneustart "beenden" ließen.

Führst du eine Log-Datei für deinen Dienst? Wenn ja, solltest du dort auch Stop-Versuche festhalten und dazu den Status des Dienstes. Vielleicht kriegst du darüber was brauchbares.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz