2014-09-08 3 views
0

Je voudrais utiliser SpiffWorkflow conjointement avec Django, mais apparemment SpiffWorkflow ne peut sérialiser ses états à JSON et XML:états SpiffWorkflow dans Stockage Django

https://github.com/knipknap/SpiffWorkflow/tree/master/SpiffWorkflow/storage

SpiffWorkflow permet sérialisation de flux de travail en cours d'exécution, de sorte Je pourrais le stocker essentiellement comme un flux d'octets quelque part (soit dans le système de fichiers ou dans la BD de Django). Mais cela me prive de tous les avantages de Django. Y at-il un moyen de mapper un dictionnaire ou une structure JSON désérialisée sur des objets que Django peut utiliser comme un objet Django régulier (stocké par Django ORM dans une base de données)? L'écriture d'un tel backend Django pour la représentation JSON de SpiffWorkflow/son workflow serait-elle compliquée? Je demande parce que je n'ai pratiquement aucune expérience dans Django.

+0

Salut, je suis confronté au même problème ici. Comment va votre projet? –

+0

@JerryMeng: pas de progrès malheureusement, il semble étrange que les auteurs de flux de travail pensent peu à la persistance du flux de travail et à l'interrogation des états de workflow étant donné la prévalence des frameworks web avec un backend RDBMS, mais ça y est. – LetMeSOThat4U

+0

Eh bien, après avoir creusé dans ce paquet, je viens de réaliser ce que vous voulez dire. J'essaye d'implémenter le backend db à associer à ce paquet. Je veux dire que si je ne peux pas enregistrer l'arborescence du flux de travail et l'indiquer quelque part, alors je perdrai la trace de mon flux de travail. Après tout, toutes les tâches ne peuvent pas être effectuées instantanément. Je ne peux pas enregistrer toutes les informations en session, sinon, tant que je redémarre le serveur, tout est parti. Je soupçonne que ma prochaine étape est de concevoir le schéma db correspondant pour ce paquet. –

Répondre

1

Vous pouvez utiliser NoSQL comme base de données au lieu d'un SGBDR. Je suggère MongoDB car il utilise la notation JSON pour stocker des données et pourrait être utilisé dans les projets Django en utilisant mongodb-engine. MongoDB est schemaless (lire MongoDB website article about being schemaless). Vous pouvez stocker vos données avec n'importe quelle structure que vous voulez et changer plus tard à la volée.

Il existe également d'autres backends NoSQL supportés par Django comme Redis, Elasticsearch, etc. et vous pouvez y jeter un coup d'oeil pour trouver le meilleur ajustement pour vos besoins spéciaux.

Questions connexes