0

基本上我想知道是否有一种方法可以运行某些东西,它会进入目录下的每个drools文件(在一个有50个文件夹的文件夹中,会进入每个文件夹。)并从这些文件中提取某些数据所以我运行它,它可以访问 10 个 .DRL,每个里面有 5 个规则,其中有一个名称规则“blah blah”和一个 logger.info 行。在规则的实际作用中。

是否可以编写一些东西来进入所有这些文件并创建每个文件名的列表,然后在所有规则名称和记录器行之下?

我们有大约 500 个 .drl 文件,每个文件中包含 1 到 100 条规则。手动创建一个我们为每个文件准备的列表,会花费很多时间:)

4

1 回答 1

1

Drools 可以做到这一点,但我认为它不是您想要使用的工具。Drools 用于对业务逻辑进行建模。你在这里并没有真正这样做。您可以使用 notepad++、grep、emacs 或其他海量文本操作工具手动提取数据。我也不会真的推荐。

完成这项任务的最佳工具可能是用 python 或 ruby​​ 编写的脚本。Ruby 是我在本例中选择的,因为它可以更好地集成正则表达式。一旦你有了这个脚本,你就可以在将来随意提取这些数据。脚本是可重用和可扩展的。如果您希望定期需要此信息或类似的信息,这使它们成为比大量文本编辑器的黑客和斜线更好的选择。

如果您的要求之一是每当您的流口水触发时都会执行此任务,那么在 Java 中进行此文本处理可能会更容易。根据您的要求,您可能希望让 Java 在 fireAllRules 事件之前或之后完成工作。

最后,drools 确实对自己非常了解。可以想象,当它运行时,你可以向 drools 询问很多此类信息。我自己从来没有这样做过。当我不得不处理像你描述的那样的任务时,我使用了一个脚本。

于 2013-11-21T23:49:29.510 回答