![]() |
TService Execute
Hi Delphianer..
beschäftige mich seit neuestem mit Services und verstehe so ziemlich das prinzip habe jedoch jetzt folgendes problem: in meiner execute procedure frage ich alle 2 minuten einen ordner ab, ob sich dateien in diesem befinden. ich habe das jetzt mal so versucht:
Delphi-Quellcode:
jedoch beendet sich mein Service und schreibt folgende Fehlermeldung in die ereignisanzeige....
begin
cache := 0; while not terminated do begin sleep(4000); if cache = 1 then begin GetLocaleFormatSettings(GetUserDefaultLCID,mysettings); mysettings.ShortTimeFormat := 'hh:mm:ss'; zeit := TimeToStr(Now,mysettings); value := StrtoTime(zeit) + StrToTime('00:01:00'); cache := 0; end; while CompareTime(StrToTime(zeit), value) = 0 do begin cache := 1; sleep(4000); logfilest.add(1, 'Cheking Queue...'); files := Countfilesinfolder('C:\queue', '*.*'); if files = 0 then begin logfilest.add(1, 'Nothing to do'); end else logfilest.add(1, 'Something found'); end; end; end; "Service fehlgeschlagen bei execute: " ist keine gültige Uhrzeit" hä? bzw. hat jemand eine idee wie ich das schöner lösen könnte?! Danke im Voraus! |
AW: TService Execute
Wird zeit denn vorbelegt? Ansonsten ist die Variable wohl leer und kann somit nicht per StrToTime umgewandelt werden. Wobei ich mich eh frage, wozu das ganze String-Gehampel gut sein soll.
|
AW: TService Execute
Die alles entscheidende Frage:
Warum nutzt du überhaupt Strings? - aktuelle Zeit (TDateTime) in einen String - diesen String dann wieder in einen TDateTime - die Minute von einem Sring nach TDateTime - und dann zusammenrechnen Warum bleibst du also nicht bei TDateTime? 1 Minute = 6.94444 oder 1/24/60 oder 1/MinsPerDay PS: Warum Pullen (ständig alles abfragen), wärend man sich auch über die Änderungen direkt informieren lassen kann? ![]() ![]() |
AW: TService Execute
Oder mit DateUtils erhöhen, dann muss man nicht einmal selber rechnen (wobei das ja auch keine unlösbare Aufgabe wäre).
|
AW: TService Execute
Und warum pollst du da ständig rum?
Windows bietet dir die Möglichkeit Ordner zu überwachen ... |
AW: TService Execute
naja ich habe eine console app die mit 2 parametern diverse einträge in eine datenbank übergibt und dazugehörige files auf einen networkshare schiebt....
jetzt muss ich dieses "modul" Service technisch realisieren. und deswegen mach ich mir eine art queue welche ich abfrage und dann abarbeite... |
AW: TService Execute
aber deswegen kannst du ja trotzdem (oder gerade deshalb) die Ordner-Überwachung benutzen
Der Service wird dann nur aktiv, wenn da was ist ... ansonsten schläft der brav vor sich hin und verbraucht (fast) keine Ressourcen. [DP]Ordner Überwachung[/DP] |
AW: TService Execute
also wenn ich ganz ehrlich bin wußte ich nicht das es das gibt ....
wie gesagt... neuland ... und noch nie benötigt :( |
AW: TService Execute
Zitat:
|
AW: TService Execute
das is lieb ;)
aber ich versteh das irgendwie nicht... es gibt da so ein tool welches, wenn sich etwas in einem ordner ändert, ein anders programm aufruft... aber wie hilft mir sowas?! danke im voraus! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:52 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