Je ne suis pas sûr où commencer à répondre à cette question, mais si j'ai un AJAX web application qui envoie des requêtes au serveur et exécute long des requêtes sur la base de données (postgresql dans mon cas), est-il un moyen de les arrêter ou de tuer les requêtes si pendant l'exécution, l'utilisateur actualise la page ou de la fermeture de la session...etc?
Réponses
Trop de publicités?Pour arrêter la requête:
SELECT pg_cancel_backend(procpid);
Pour tuer la connexion de base de données:
SELECT pg_terminate_backend(procpid);
Pour obtenir une vue d'ensemble des transactions courantes, pour obtenir le procèdent id:
SELECT * FROM pg_stat_activity;
http://www.postgresql.org/docs/current/interactive/functions-admin.html
Compte tenu de votre psql configuré pour s'exécuter et se connecter à courant dev base de données présente un liner est très utile dans le développement lors de l'essai de requêtes compliquées qui peuvent hung, tue juste quelque points:
Si pas correctement configuré - ajouter les options d'utilisateur/mot de passe/base de données
psql -c "SELECT pid FROM pg_stat_activity;" -t | xargs -n1 -I {} psql -c "SELECT pg_cancel_backend({})"