Timer Schedule Variable übergeben

DeinGewissen

Grünschnabel
Hallo,

ich entwickele zur Zeit an einer JSP Webanwendung, von der aus die Anwender Daten zu einer Datenbank hinzufügen können. Diese Datensätze enthalten Texte die zu bestimmten Zeiten (die ebenfalls vom Anwender frei gewählt werden können) verschickt werden sollen.

So nun zu dem Problem vor dem ich gerade stehe: Und zwar handelt es sich dabei um das automatische Verschicken zum gewählten Zeitpunkt.

Ich habe folgenden Timer initialisiert:

Versenden ist der Versandzeitpunkt in Millisekunden.
Code:
   ....
     Timer timer = new Timer();
      timer.schedule  ( new Task(), versenden );
....

Die Klasse Task beginnt folgendermaßen:
Code:
import java.util.*;

class Task   extends TimerTask  
{
    public void run()  
  {...

Nun würde ich der Klasse Task gerne eine Nachrichten ID (String) übergeben, damit diese weiß welche Nachricht sie verschicken soll.
Aber nach diversem Ausprobieren und googeln habe ich bisher nur die Antwort gefunden, dass man wohl keine Variablen an eine Timerklasse übergeben kann. Stimmt das?

Mir fällt auch zur Zeit nicht ein wie ich dem Timer sonst klar machen könnte zu welcher Nachricht er gehört :confused:
Da auch mehrere Timer gleichzeitig laufen können, wenn z.B. mehrere Nachrichten zur selben Zeit verschickt werden sollen.

Ich hoffe ihr könnt mir helfen.
 
Java:
public class Task extends TimerTask
{
    private String id;

    public Task(String id)
    {
        this.id = id;
    }

    public void run()
    {
        System.out.println(id);
    }
}

Java:
Timer timer = new Timer();
timer.schedule(new Task("hallo"), 3000);

Gibt nach 3 Sekunden "hallo" aus.
 
Möchte dein Konzept icht über den haufen werden, aber du hast dann evtl. 1000 Timer laufen!

Starte lieber einen EJB3 Timer der alle X Minute/Sekunden/Stunden eine Abfrage auf der DB ausführt und sich alle Datensätze geben lässt, die "Reif" zum verschicken sind.
 

Neue Beiträge

Zurück