Wie "Update-Intervall" innerhalb eines scriptes erzeugen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
sveni_lee
User
Beiträge: 92
Registriert: Montag 14. März 2016, 09:50

Ich möchte gern innerhalb meiner scripts bestimmte Programmteile innerhalb festgelegter Zeitabstände aufrufe und so den
Inhalt meiner Datenbank aktualisieren...
Ich hatte mir gedacht, dass ich die aktuelle Zeit in sec seit 01.01.1970 nehme und dann das intervall in Sekunden dazu addiere
und wenn der wert erreicht ist, dann sollte das "update" erfolgen...

Mein problem ist, das das programm auch vor erreichen des "update-Zeitpunktes" verlassen werden kann.
Wie kann ich nun die zum Zeitpunkt eines Updates gesetzte Zeite auch über den Neustart des Scripts hinweg
speichern?

Bsp: das Update wird um 8:00Uhr ausgeführt; das Zeitintervall ist 4h.
das nächste Update wäre folglich um 12:00Uhr fällig.
nun wird das programm von 10:00 bis 11:00 verlassen... dann ist meine
Update-StartZeit auch weg...
BlackJack

@sveni_lee: Dann müsstest Du die Zeit halt speichern. Andererseits würde ich so etwas wahrscheinlich nicht selbst lösen wollen, denn es gibt in der Regel Dienste die so etwas regeln können. Beispielsweise der Cron- oder At-Daemon unter Linux oder die Aufgabenplanung unter Windows.
der_Mausbiber
User
Beiträge: 72
Registriert: Donnerstag 2. Oktober 2014, 09:51

Müsste hier nicht auch der apscheduler weiterhelfen können?
Einfach einbauen, entsprechendes Zeitintervall einstellen und gut.

http://apscheduler.readthedocs.io/en/latest/
sveni_lee
User
Beiträge: 92
Registriert: Montag 14. März 2016, 09:50

BlackJack hat geschrieben:@sveni_lee: Dann müsstest Du die Zeit halt speichern.
kann ich diese innerhalb des scripts speichern oder nur in einer ausgelagerten Datei?
Andererseits würde ich so etwas wahrscheinlich nicht selbst lösen wollen, denn es gibt in der Regel Dienste die so etwas regeln können. Beispielsweise der Cron- oder At-Daemon unter Linux oder die Aufgabenplanung unter Windows.
geht leider nicht... das ganze soll ja Plattformübergreigend funktionieren...
Ich will damit den scrapper in bestimmten Zeitabständen starten also bspw. alle 720min von Zeitpunkt des letzten scappings an... aber das system kann/wird zwischenzeitlich abgeschaltet, der Timer sollte aber trotzdem weiterlaufen...

der_Mausbiber hat geschrieben:Müsste hier nicht auch der apscheduler weiterhelfen können?
Einfach einbauen, entsprechendes Zeitintervall einstellen und gut.

http://apscheduler.readthedocs.io/en/latest/
hab ich mir mal angesehen...
Das Modul ist nicht in der standardbibliothek also nicht auf jedem Systhem sofort verfügbar oder?
BlackJack

@sveni_lee: Wie willst Du etwas *im* Programm speichern wenn das beendet und neu gestartet werden kann und der Wert das überleben soll? Das muss schon irgendwo ausserhalb des Prozesses abgelegt werden. Datei, Datenbank, …

`apscheduler` müsstest Du installieren, das gehört nicht zur Standardbibliothek. Und für persistente Jobs braucht man auch noch zusätzliche Module für die Datenbank und eine der unterstützten Datenbanken. Man könnte sich auch etwas primitives mit dem `sched`-Modul selber basteln.

Übrigens: Schau mal im Wörterbuch den Unterschied zwischen „scrapping“ und „scraping“ nach. :-D
sveni_lee
User
Beiträge: 92
Registriert: Montag 14. März 2016, 09:50

BlackJack hat geschrieben:@sveni_lee: Wie willst Du etwas *im* Programm speichern wenn das beendet und neu gestartet werden kann und der Wert das überleben soll? Das muss schon irgendwo ausserhalb des Prozesses abgelegt werden. Datei, Datenbank,
....
könnte ich nicht dann einfach auch eine varable mit meit einem Timstamp + x-minuten in einer .dat abspeichern und bei jedem
start die variable aus der Datei importieren und und vergleichen mit der aktuellen Zeit und => dann den Scaper starten und die Variable mit aktuellen Werten überschreiben?
Übrigens: Schau mal im Wörterbuch den Unterschied zwischen „scrapping“ und „scraping“ nach. :-D
okay, verschrotten ist eventuell das falsche Wort...
BlackJack

@sveni_lee: Genau so könnte man das machen.
nezzcarth
User
Beiträge: 1634
Registriert: Samstag 16. April 2011, 12:47

sveni_lee hat geschrieben: geht leider nicht... das ganze soll ja Plattformübergreigend funktionieren...
Cron ist unter unixoiden Systemen Standard (schon installiert, oder leicht installierbar); von den heute gängigen, für Privatpersonen halbwegs zugänglichen Systemen sind das doch im Prinzip alle außer Windows. Insofern wären nur zwei Varianten zu berücksichtigen. Da müsste man dann abwägen, ob sich das gegenüber einem rudimentären Nachbau nicht doch lohnt.
sveni_lee
User
Beiträge: 92
Registriert: Montag 14. März 2016, 09:50

BlackJack hat geschrieben:@sveni_lee: Genau so könnte man das machen.
ja, das klappt perfekt...
Danke für den Hinweis
nezzcarth hat geschrieben:
sveni_lee hat geschrieben: geht leider nicht... das ganze soll ja Plattformübergreigend funktionieren...
Cron ist unter unixoiden Systemen Standard (schon installiert, oder leicht installierbar); von den heute gängigen, für Privatpersonen halbwegs zugänglichen Systemen sind das doch im Prinzip alle außer Windows. Insofern wären nur zwei Varianten zu berücksichtigen. Da müsste man dann abwägen, ob sich das gegenüber einem rudimentären Nachbau nicht doch lohnt.
das ganze ist ein KODI addon... somit muß "leider out of the box" funktionieren... also alles was zum laufen nötig ist, sollte in Addon enthalten sein...
harryberlin
User
Beiträge: 227
Registriert: Donnerstag 17. Dezember 2015, 12:17

es gibt doch addon settings. sogar spezielle für zeit und datum:
http://kodi.wiki/view/Add-on_settings#D ... time_input
empty Sig
Antworten