Question

Par exemple, le système traite une commande client par check identification -> validate order context -> make order. Mais l'administrateur système peut modifier le débit à l'exécution, l'administrateur peut ignorer le « validate order context ».

Ma question est de savoir si le système est en train de traiter les demandes de commande simultanées, lorsque le système devrait appliquer le changement de débit?

  • a):. Appliquer le changement jusqu'à la prochaine nouvelle demande de commande

  • b): Appliquer le changement immédiatement, peu importe toute demande est en cours de traitement. Il semble trop rigide.

  • c): Appliquer le changement jusqu'à un certain temps, par exemple, tout changement sera appliqué à 00:00:00. Je ne pense pas que ce soit une bonne stratégie.

Quelle est la meilleure pratique de la situation? Si j'utilise cadre JBMP pour contrôler le flux de travail, quelle stratégie peut être utilisée dans ce cas? Merci!

Était-ce utile?

La solution

Les trois options sont valides. Le bon choix dépendra du problème que vous résolvez. Voici quelques exemples:

  1. Appliquer le changement en commençant par le prochain nouvel ordre. Ceci est une bonne option si vous voulez phase dans un nouveau flux de travail. Vous pourriez décrire cela comme « terminer les travaux en cours avec le flux de travail actuel, mais tous les nouveaux travaux utilisera le nouveau flux de travail ».
  2. Appliquer immédiatement le changement. Ceci est une bonne option s'il est plus important que le flux de travail currect (par là, je veux dire le nouveau workflow) être utilisé pour tous les travaux (actuels et nouveaux). Un exemple de cela pourrait être « Nous avons éliminé une étape inutile du flux de travail. »
  3. Appliquer le changement à partir d'un moment de certin. Ceci est une bonne option dans des situations qui peuvent décrit comme ceci:. « Aujourd'hui, nous utilisons l'ancien flux de travail, mais demain nous commencer à utiliser le nouveau flux de travail »

Autres conseils

Votre première option pour appliquer le prochain flux de travail (à savoir l'ordre) est le plus sûr d'un point de vue de la concurrence. Voici ce que je ferais parce que vous ne pas interférer avec les objets stateful et il est clair alors très à un observateur ce qui a eu lieu.

La deuxième option nécessite le verrouillage des flux de travail existants pour vous assurer qu'aucun sont dans l'état de validate order context. Et, le cas échéant sont, écrire un algorithme pour résoudre le déplacer correctement de cet état.

Enfin, votre dernière option est vraiment juste ordonnancement autour des deux premiers. À ce titre, il pourrait être incorporé dans une ou l'autre et doit être motivée par des règles métier (à savoir les exigences).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top