Funktion nur in einem Zeitraum

Fabse

Aktives Mitglied
Hi,

ich möchte ein paar Funktionen programmieren, die mir bei einem bestimmten Ereigniss eine E-Mail senden. Allerdings nicht immer, d.h. ich möchte, dass die Funktion nur zwischen x:50 und x:59 ausgeführt wird und wenn dann ein bestimmter Wert erreicht wurde soll ich per Mail benachrichtigt werden. Das x läuft von 8-22 Uhr.

Beispiel:
8:50 - 8:59 kein Wert erreicht um mir eine Mail zusenden.
9:54 Wert erreicht mail wird gesendet, wenn jetzt 9:55 wieder der Wert erreicht wird, soll ich nicht wieder per Mail benachrichtigt werden, erst wieder um 10:50.

Ich könnte mir die Zeit einzelnd holen und alles selber porgrammieren quasi, aber gibts da nicht schon fertige biblotheken?

Gruß

Fabse
 
Auf Basis dieser Argumentation habe ich schon so viele - naja sagen wir mal suboptimale - Lösungen gesehen, die dann "historisch gewachsen" zu einem rießen Chaos ausgeartet sind.

Aus deinen 10 Zeilen (und die halte ich für mindestens 90 Zeilen zu wenig), können ganz schnell 1000 oder mehr werden, da neue Anforderungen dazu kommen und Probleme auftauchen an die du im ersten Augenblick nicht denkst.

Ich denke die Zeit die es braucht sich in Quartz einzuarbeiten ist gut investiert, und so schlimm ist es auch nicht. Nach dem Quickstart und dem hier CronTrigger sollte man die Anforderung schnell umsetzen können.

Ein weiterer Punkt ist natürlich auch CV-Driven-Development, im professionellen Umfeld ist Quartz das Mittel der Wahl, und wenn man sich in den Lebenslauf reinschreiben kann, dass man damit Erfahrung hat, hat man zumindest keinen Nachteil 😉
 
Auf Basis dieser Argumentation habe ich schon so viele - naja sagen wir mal suboptimale - Lösungen gesehen, die dann "historisch gewachsen" zu einem rießen Chaos ausgeartet sind.

Aus deinen 10 Zeilen (und die halte ich für mindestens 90 Zeilen zu wenig), können ganz schnell 1000 oder mehr werden, da neue Anforderungen dazu kommen und Probleme auftauchen an die du im ersten Augenblick nicht denkst.

Ich denke die Zeit die es braucht sich in Quartz einzuarbeiten ist gut investiert, und so schlimm ist es auch nicht. Nach dem Quickstart und dem hier CronTrigger sollte man die Anforderung schnell umsetzen können.

Ein weiterer Punkt ist natürlich auch CV-Driven-Development, im professionellen Umfeld ist Quartz das Mittel der Wahl, und wenn man sich in den Lebenslauf reinschreiben kann, dass man damit Erfahrung hat, hat man zumindest keinen Nachteil 😉

Na gut, in dem Punkt hast du Recht.
Bei mir war es so, dass ich für I18N properties-Dateien hatte die natürlich auch variable Texte haben sollten. Und da mir
Code:
MessageFormat.format
zu unübersichtlich wurde mit den
Code:
$1$
, hatte ich StringTemplates benutzt. Allerdings ist das ca. 5MB extra, da man noch irgendwas von ANTLR braucht. Da das zu viel war, hab ich meine eigene Klasse geschrieben, die genau das gleiche macht:

Java:
public static class StringTemplate {
	
	String	value;
	
	public StringTemplate(final String raw) {
		value = raw;
	}
	
	public StringTemplate set(final String identifier, final String value) {
		this.value = this.value.replaceAll( "(?<!\\\\)<" + identifier + ">", value );
		return this;
	}
	
	public String render() {
		return value.replaceAll( "(?<!\\\\)<.*?>", "" ).replaceAll( "\\\\(<.*?>)", "$1" );
	}
}

Natürlich machen StringTemplates noch mehr und das arbeitet viel genauer, aber meine 10 Zeilen Code ersetzen 5 MB Library und machen genau, was ich wollte.
 

Zurück
Oben