Cron Jobs und Funktionen

Probleme bei der Installation?
Antworten
T1bbY
User
Beiträge: 12
Registriert: Freitag 6. November 2015, 08:35

Hallo Leute :)

Ich habe eine Script das durchgehend läuft und verschiedene Funktionen in Threads ausführt.
Jetzt möchte ich gerne eine Funktion alle 30 sec. ausführen und eine andere Funktion zB. einmal am Tag.
Das Problem ist das ich nicht mit time.sleep() arbeiten kann weil dann der ganze Thread warten würde, dieser soll aber weiter laufen.

Nun habe ich mich gefragt ob ich dafür CronJobs benutzen kann allerdings weiß ich nicht wie ich Funktionen eines Objektes von einem CronJobs aus ausführen soll.(geht vermutlich gar nicht)

Vielleicht habt ihr noch andere Ideen wie ich mein Problem lösen kann.

Danke für die Hilfe :)
T1bbY
BlackJack

@T1bbY: Warum `time.sleep()` nicht gehen soll verstehe ich nicht, denn wenn die Funktion nebenläufig ausgeführt werden soll, dann läuft sie ja in einem *eigenen* Thread, also macht es auch nichts wenn der blockiert, der tut ja sonst nichts.

Es gibt in der Standardbibliothek `threading.Timer()` oder das `sched`-Modul. Ansonsten kann man sich auch nach anderen Modulen/Paketen umschauen. Beispielsweise Advanced Python Scheduler (APScheduler).
T1bbY
User
Beiträge: 12
Registriert: Freitag 6. November 2015, 08:35

@BlackJack: Danke für den Denkanstoß, in meinem Kopf bin ich noch nicht darauf gekommen einfach alle Funktionen in Threads zu teilen.

Ich werde mich mal mit timer und sched auseinandersetzen.

Ich melde mich sobald ich schlauer bin.
T1bbY
User
Beiträge: 12
Registriert: Freitag 6. November 2015, 08:35

@BlackJack Danke für den Tipp.
Nun kann ich die Funktionen gleichzeitig ausführen bzw besser timen.

Jeder dieser Funktionen schreibt in die selbe Queue kann das ein Problem werden wenn min 2 zur gleichen Zeit versuchen etwas in die Queue zu schreiben?
BlackJack

@T1bbY: Falls mit Queue die `Queue.Queue` oder `collections.deque` gemeint ist, dann ist das kein Problem, die sind beide threadsicher.
T1bbY
User
Beiträge: 12
Registriert: Freitag 6. November 2015, 08:35

Vielen Dank für die Hilfe :)
Jetzt gehts in die Testphase.

Wo kann ich den Beitrag als erledigt makieren?
Antworten