Seite 1 von 1

Zeitgesteuerte Abfrage eines FTPs

Verfasst: Dienstag 17. März 2009, 15:34
von HunrigerHans
Hallo @ all,

bis jetzt bin ich bei meinen Problemen mit Python immer über die SuFu fündig geworden, nur jetzt hilft auch das nicht mehr (leider).

Ich würde gerne zu einem bestimmten Zeitpunkt überprüfen, ob eine neue Datei auf einem FTP Server liegt.
Das Abrufen der Daten vom FTP ist hierbei nicht das Problem.
Die Zeitsteuerung bereitet mir Kopfzerbrechen.
So soll der FTP immer um XX:55 (Format HH:MM) nach Neuigkeiten gefragt werden. Falls neue Daten vorhanden sind, dann soll erst wieder bei XX+1:55 abgefragt werden, falls nicht dann soll solange jede Minute abgefragt werden, bis eine aktuellere Datei vorhanden ist und dann erst wieder um XX+1:55. Hoffe es ist verständlich was gemeint ist ;)
Das ganze mit sleep() zu realisieren finde ich recht hässlich. Könnte auch mit Hilfe des time-Moduls immer die aktuelle Uhrzeit herausbekommen und dementsprechend reagieren. Das müsste ich aber auch in regelmäßigen Abständen machen, also wieder sleep().
Gibt es noch eine andere Möglichkeit?

Zur Info:
Verwende Python 2.5.1 und arbeite unter Linux. Zudem kommt nur die StdLib zum Einsatz und das soll/muss auch so bleiben ;)

Verfasst: Dienstag 17. März 2009, 15:48
von lunar
Was stört dich an "time.sleep()"? Eine andere Möglichkeit wäre eine Kombination aus "signal.pause()", "signal.alarm()" und einem dazu passenden Signal-Handler, aber das ist dann wirklich hässlich ...

Verfasst: Dienstag 17. März 2009, 16:18
von HunrigerHans
Hi,
danke für die schnelle Antwort.
Also meinst du, dass ich bspw. alle Minute (Interval realisiert durch sleep()) die Uhrzeit abfragen soll und dann mit RegEx prüfen ob es XX:55 ist?
Klar ist, dass das geht. Aber gibt es nicht noch einen eleganteren Weg?

Gruß HH

Verfasst: Dienstag 17. März 2009, 16:22
von lunar
Uh? Mal abgesehen davon, dass Python Typen für Datumswerte hat und mir daher nicht klar ist, warum du die Uhrzeit mit regulären Ausdrücken vergleichen willst, besteht doch überhaupt kein Grund, die Uhrzeit zu überprüfen regelmäßig zu überprüfen.

Wenn dein Programm um 14:25 startet, dann kannst du doch ausrechnen, wie lange das Programm schlafen muss, bevor es aufgeweckt werden muss, nämlich 20*60 Sekunden. Weckt das System dein Programm dann zu diesem Zeitpunkt auf, kannst du eine Aktion ausführen und dann auf gleiche Weise wieder die Länge der Schlafperiode ausrechnen.

Verfasst: Donnerstag 19. März 2009, 07:27
von bankkind
Wieso nicht über einen cronjob unter linux? Dafür ist das ja da! Dann brauchst du dich nur noch um das reine 'ftp prüfen' konzentrieren.

bankkind

Verfasst: Montag 23. März 2009, 14:37
von HunrigerHans
Hi,

danke für den Tipp mit cronjob zu arbeiten! Das habe ich gesucht

[CLOSE]