Ich schreibe gerade eine Anwendung mit Drools 5.0. Diese Anwendung scheint ein wenig langsam zu laufen, aber ich habe eine Theorie warum. Diese Anwendung empfängt viele Aktualisierungen für Fakten, die bereits in der Wissenssitzung gespeichert sind. Die Drools-Update-Funktion unter der Haube macht wirklich einen Rückzug und dann einen Einschub. Diese Anwendung hat über 200 Regeln. Einige der Regeln werden ausgelöst, wenn bestimmte Fakten entfernt werden. Andere Regeln werden geschrieben, wenn bestimmte Fakten in der Wissenssitzung bestätigt werden. Da das Update wirklich eine Retraktion durchführt, werden die retraktions- und einführungsbezogenen Regeln während eines Updates noch ausgelöst? Auch wenn nichts wirklich in die Wissenssitzung "eingefügt" oder zurückgezogen wird?Könnte die Drools-Update-Methode möglicherweise meine Probleme verursachen
Eine Sache zu beachten, ich 'angehängt' den WorkingMemoryFileLogger zu meiner Wissens-Session, um eine bessere Vorstellung von dem, was los ist. Damals sah ich viele unerwartete Retraction/Insertion-Regelaktivierungs-Kreationen, die der Agenda hinzugefügt wurden, aber anscheinend werden sie nie aktiviert. Es scheint mir, dass das Aktualisieren von Fakten, insbesondere aufgrund Ihres Faktenmodells, teuer sein kann und ich sparsam eingesetzt werden sollte. Ist das richtig?
Danke für die Antwort Michael. Du hast meinen Verdacht bestätigt. Der Motor scheint korrekt zu funktionieren, aber meine Antworten sind latent, weil es zu lange dauert, alle Regeln/Fakten zu verarbeiten. Ich habe ein paar Ideen, wie ich das Faktenmodell umgestalten kann, aber ich wollte sicherstellen, dass ich mich auf das richtige Problem konzentriere, da meine Refactoring-Bemühungen eine Weile dauern können. Danke nochmal! – loyalBrown