java - optaplanner护士排类系统中的XML文件可以与前台实时交互

标签 java optaplanner

我正在使用您的 optaplanner 作为医生调度系统。

我有一个问题要问你:

我使用optaplanner作为后端系统,通过PHP将XML文件传递给optaplanner,并由optaplanner将计算出的XML结果返回给PHP后端系统。现在我想让医生实时看到网页的变化。我能让它发生吗?是为了让optaplanner能够实时产生XML文件,而不是最后才计算生成XML文件。

最佳答案

是的,这是可能的,但它可能需要您稍微改变一下您的架构。

要将结果从服务器发送到客户端(用户的浏览器),您需要使用 websockets。

Optaplanner 有 SolverEventListener,每次最佳解决方案发生变化时都会调用它。您可以做的是每次在监听器中调用 bestSolutionChanged 时通过 Websocket 发送解决方案。出于性能原因,您可能希望 websocket 发送请求成为非阻塞操作,并且解决方案的序列化应该快速发生。您可能还希望包括每个 webocket 发送请求/bestSolutionChanged 调用之间的最短时间,因为一开始 Optaplanner 可能会经常找到新的最佳解决方案。

我不知道如何在 PHP 中执行此操作,但通常对于此类类型的实时应用程序,vert.x 非常适合我(optaplanner 解决方案计算在工作器 verticle 中处理,新解决方案是通过 sockjs eventbus 桥通过 eventbus 发送出去)

关于java - optaplanner护士排类系统中的XML文件可以与前台实时交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51357868/

相关文章:

java - 如何正确使用此图像代码?

java - 如何从curl或postman或swagger Micronaut传递值@Body MultipartBody

java - 在解决时间问题的同时移动链式规划实体

java - OptaPlanner 7.21.0 无法从 jar 文件执行 - 目录 dataDir 错误

OptaPlanner:所有可能的值都必须适合内存吗?

java - 如何打印特定时区的日期?

Java Plist XML 解析

java - 将一个 Swing 组件与另一个关联

java - 尝试在 Optaplanner 中添加一个值(使用 Drools)

java - Optaplanner+Drools - 如何按顺序排序