Transactionner Suppression

Répondre
Lefounard
le 01/08/2007 à 13:00
Lefounard
Bonjour,
Je dois gerer la suppression de 5 fichier stockes sur mon serveur.
Je veux que ca fonctionne en mode : tout ou rien.
Par exemple, le premier et second fichier sont supprimé, au troisieme j'ai une erreur qui m'empeche de supprimer.
Je voudrais une sorte de rollback, qui annule la suppression des fichiers 1 et 2, comment faire ?
Pour info, j'utilise unlink pour supprimer mes fichiers.
Pour plus d'info, il s'agit de la suppresion d'une fiche produit avec des données en bdd et des fichiers sur le serveur.
Merci de vos conseils,
Ciao,
I am singing in the rain , I am happy again !!
LA GLOBULE
le 01/08/2007 à 13:17
LA GLOBULE
Tu n'as pas de moyen de contrôler cela.
Sauf a posteriori, c'est à dire retenter une suppression si jamais elle plante. Mais si elle plante, en général, c'est que quelque chose d'anormal s'est passé, donc que tu dois vérifier quelque chose.
Bzh
le 01/08/2007 à 13:39
Bzh
Si, tu peux !

1->Tu copies chaque fichier dans /tmp.
2->Tu vérifies que la copie s'est bien passe (is_file() )
3->Tu unlink tous tes fichiers
4->Tu testes (is_file() ) la suppression
OK -> Opérations terminés
Pas OK -> Tu recopies les fichier de /tmp vers le dossier d'origine

Voila... Tout simplement !!!
Lefounard
le 01/08/2007 à 13:43
Lefounard
Je pensais a ca, aussi mais bon c'est un peu lourd et si la copie du backup foire, je suis b*****.
Ciao,
I am singing in the rain , I am happy again !!
Bzh
le 01/08/2007 à 13:47
Bzh
Et bien teste ! Si a chaques étapes tu testes, il n'y a pas de risque !
Lefounard
le 01/08/2007 à 14:24
Lefounard
Je pense que je vais faire comme cela, ca sera le plus judicieux :

Recuperer les noms de fichiers du produit
Supprimer les données en bdd du produit (mode transaction)
Supprimer les fichiers
Test a chaque suppression, si ca echoue, je sauvegarde dans un log d'erreur et plus tard je supprimerai a la main, ou avec un script pour retenter un unlink.
Ciao,
I am singing in the rain , I am happy again !!
LA GLOBULE
le 01/08/2007 à 14:59
LA GLOBULE
Pas OK -> Tu recopies les fichier de /tmp vers le dossier d'origine


Et si la copie plante ? Tu reviens au point de départ.
Ce sont des actions séquentielles, donc à moins de tout faire en même temps, tu ne pourras pas checker que tout se passe bien et donc revenir en arrière.
mojorisin
le 03/08/2007 à 07:57
mojorisin
Si les fichiers ne sont pas volumineux, tu peux stocker cela temporairement en mémoire.

lecture du fichier (en binaire éventuellemnt) et stockage du contenu et du nom de fichier dans un tableau

Suppression du fichier
Suppression ok ? continue : restauration

Bien évidement si les fichiers sont trop lourd cela va poser des problèmes :)

Sinon tu peux utiliser un rename sur le fichier.
echo ’16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq’|dc
LupusMic
le 05/08/2007 à 04:18
LupusMic
Pourquoi la suppression doit-elle être annulée ? qu'est-ce que cela entraine comme problème que la suppression ne s'effectue pas ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours