Sans rentrer dans les détails, la structure grossière du système d'enchère et du coup, pourquoi un système de contrôle tel que tu le décrit serait très chiant à mettre en place :
1) la page enchère affiche tout les joueurs qui sont en vente, dont la date de fin d'enchère est après maintenant
2) chaque fois qu'un joueur enchéri, deux choses se passent :
-via la re-création de la page d'enchère, son enchère est enregistrée. Si l'offre est faite moins de deux minutes avant la fin de l'enchère, la date de fin est prolongée de 2 min pour permettre à d'autre joueurs d'éventuellement surenchérir
-un processus serveur est crée. Ce processus dort jusqu'à la date de fin de l'enchère au moment de sa création. A ce moment-là, si personne n'a surenchéri, il résout l'enchère et effectue les transactions ; si quelqu'un a surenchéri, il s'éteint.
Donc chaque personne qui enchéri génère un processus différent, qui va ensuite résoudre l'enchère si c'est la bonne ou ne rien faire si l'offre à changé.
On a donc une grosse difficulté matérielle ici : pour chaque enchère, on a une foule de processus à surveiller, sachant qu'un seul est pertinent et fera quelque chose ; de plus, on ne peux pas savoir lequel sera pertinent avant qu'il ne soit réalisé, car jusqu'à la dernière milliseconde un autre processus peux lui voler la vedette. Concrètement, cela rend la surveillance automatique de ces processus très lourde et peu efficace.
Manuellement, c'est par contre très simple à gérer : un test rapide (sélectionner tout les joueurs encore en enchère avec une offre après la date de fin de l'enchère) permet d'afficher rapidement ceux qui ont foirés. Il suffit alors de relancer "à la main" uniquement les processus gagnants, qui résolvent instantanément ces enchères.
Quand au cause du bug, c'est ponctuel (je l'espère) : la carte-mère de mon serveur a grillé (défaillance mécanique, rien à voir avec la structure du site). Mon hébergeur, très efficace, l'a remplacé dans l'heure et m'a averti du problème. Cependant, comme chaque fois qu'on reboot un ordi, tout les processeurs ont étés tués. J'ai relancé sans plus attendre l'ensemble des processus mécaniques, eux bien identifiés, qui gère le déroulement "classique" du site (matchs, entraînement, paie des joueurs...) mais les processus d'enchères, ne peuvent pas êtres relancés de la sorte pour plusieurs raisons :
-ces processus ne sont pas listés
-plus important, pour relancer ces processus, il faudrait disposer d'informations n'existant plus (offre passée, etc.).
Mais cela dit, ce n'est pas tragique, parce que finalement si quelqu'un surenchéri, de nouveau processus sont créés et tout roule ; si personne ne surenchéri, il suffit que j'identifie et que je relance le processus gagnant, ce qui est facile. Il faut juste que j'aille regarder "à la main" de temps en temps (ou quand quelqu'un me le signale) si y'as des enchères qui ont foirées, et ce, juste pendant la semaine qui vient (après, il n'existera plus d'enchère potentiellement corrompue, donc tout roulera).
Voilà, je ne sais pas si j'ai été super-clair ^^ mais j'espère avoir apporté quelque éléments de réponses.