Est-ce que quelqu'un sait comment surveiller les processus côté serveur de longue durée dans GWT, autres que l'interrogation du serveur? Nous devons effectuer un traitement fastidieux, en plusieurs étapes, lié aux E/S sur le serveur, et il serait bon d'afficher la progression de ce traitement dans le navigateur.Surveillance du processus dans GWT
Répondre
Ceci est assez facile à gérer dans GWT. Le processus de longue durée est soit déclenché par un appel GWT RPC, auquel cas vous avez votre point d'entrée, soit il ne l'est pas, auquel cas vous devez le désactiver manuellement. Rappelez-vous que les appels RTC GWT sont asynchrones, ils n'ont donc pas besoin de retourner immédiatement. Vous avez besoin d'un appel RPC comme checkStatus()
. Ainsi, vous pouvez faire des choses comme:
public class JobStatus {
private boolean done;
// other info
// ...
}
public class JobStatusCallback<JobStatus> extends AsyncCallback {
public final void onSuccess(JobStatus result) {
if (result.isDone()) {
done();
} else {
checkAgain();
}
}
public final void onFailure(Throwable caught) {
error(caught);
checkAgain();
}
public void done() { // override
}
public void checkAgain() {
service.checkStatus(this);
}
public void error(Thorwable t) { // override
}
});
et dans votre service RPC:
void checkStatus(AsyncCallback<JobStatus> callback);
Votre serveur peut prendre aussi longtemps qu'il aime (à raison) de retour de checkStatus(). Il peut retourner parce que le travail est terminé ou simplement avec une mise à jour du statut du travail. La procédure ci-dessus continuera en boucle jusqu'à ce que l'indicateur d'état du travail soit défini.
Je pense que cela dépend de votre processus, mais si vous allez faire quelque chose comme Streaming de données, vous pouvez utiliser la technologie Server Push (ou Comet). GWT supporte l'implémentation de Comet. google GWT + Comet, ou GWT + COMET + Tomcat, je lis sur comet et gwt dans le livre "Google Web Toolkit Applications" (gwtapps.com).
- 1. Surveillance du processus
- 2. Surveillance d'un processus dans Windows
- 3. Surveillance des processus Windows
- 4. Démarrer le processus de surveillance dans le système
- 5. Surveillance du port série
- 6. Surveillance d'un sous-processus/puis-je obtenir TotalProcessorTime pour un groupe de processus?
- 7. Logiciel de surveillance GPU
- 8. [GWT] Bloquer l'événement du navigateur dans le cas du lien
- 9. Surveillance du serveur ColdFusion - ne fonctionne pas
- 10. Surveillance de fichiers/dossiers
- 11. Rendu Wiki dans GWT
- 12. Surveillance par lots Java
- 13. Comment obtenir l'identifiant de processus du processus appelant dans erlang?
- 14. Les processus de surveillance pour voir si ils se sont plantés dans vb6
- 15. Surveillance de certains appels système effectués par un processus dans Windows
- 16. Surveillance du niveau sonore du microphone en temps réel
- 17. Surveillance des variables dans Xcode
- 18. ImageButton dans gwt
- 19. Majuscule dans GWT?
- 20. RIght-clic dans GWT?
- 21. Renvoyer JSON dans GWT
- 22. Surveillance MSMQ
- 23. Redimensionner par programme la fenêtre du navigateur dans GWT
- 24. re-rendu du magasin combox dans Gwt-Ext
- 25. est-il possible d'analyser du texte comme XML dans GWT?
- 26. Firing cliquez sur l'événement du code dans gwt
- 27. Réduire la complexité du code pour GWT
- 28. GWT et GWT-incubateur sécurité
- 29. Méthode native Javascript dans GWT
- 30. grilles et boutons dans gwt
Merci pour la réponse. Maintenant que je le vois, il semble si évident :) – Phil
Bien que l'affiche originale dit non interrogation, c'est en fait une solution d'interrogation en ce que vous lancez un appel http (l'appel RPC), attendez pour revenir, et réessayer si elle n'est pas fait. C'est en fait ce que l'interrogation est. L'autre solution est d'essayer la comète. http://code.google.com/p/rocket-gwt/wiki/Comet – Chii