Ich verwende Openejb und asynchrone EJBs. Ich habe viele Futures und würde gerne wissen, ob einer auf dem Future zu viel Zeit braucht (damit ich ihn nachvollziehen und schließlich abbrechen kann). Das Problem ist, dass ich wissen muss, wie lange die Zukunft läuft, ich muss wissen wann es losgeht. Die Future-Schnittstelle lässt mich wissen, ob eine Zukunft beendet oder abgebrochen ist, aber wenn nicht, kann ich nicht wissen, ob sie läuft oder auf einen Thread im Pool wartet. Ist es möglich, den Status "Zukunft" (läuft/nicht gestartet) zu erhalten?Wissen, ob eine Zukunft gestartet wird
Dank
scheint nicht, als ob 'Future' dies erlaubt. Sie könnten die Aufgabe immer zu einer Sammlung hinzufügen lassen und dann die Sammlung prüfen, um festzustellen, welche Aufgaben ausgeführt werden. –
Ja, aber ich hätte gerne eine generische Lösung – jaudo
Es scheint, dass dieses Flag-ähnliche System die einzige Möglichkeit ist, dieses Verhalten zu erreichen. Ihre nächste Option wäre, die "Future" -Schnittstelle zu erweitern, um die Flagge jeder Zukunft hinzuzufügen. Aber dies würde erfordern, dass Sie sich mit dem Executor herumschlagen, den Sie gerade verwenden, damit der Executor Ihnen eine Instanz Ihrer 'Future'-Implementierung mit dem Flag –