Обновление конфигурации Optaplanner и решателя Quarkus

Я работаю над проектом с quarkus и optaplanner, и я пытаюсь получить доступ и изменить конфигурацию решателя, добавить эвристику, изменить алгоритм поиска и т. Д.

Я использую solverJob и solverManager, и кажется, что quarkus скрывает от меня конфигурацию решателя. Я в основном следую шагам руководства Quarkus (https://quarkus.io/guides/optaplanner).

public PlannerSolution solve() {
    UUID problemId = UUID.randomUUID();
    SolverJob<PlannerSolution, UUID> solverJob;
    
    solverJob = solverManager.solve(problemId, problem);

    PlannerSolution solution;
    try {
      // Wait until the solving ends
      System.out.println("Waiting................");
      solution = solverJob.getFinalBestSolution();
      System.out.println("Done");
    } catch (InterruptedException | ExecutionException e) {
      throw new IllegalStateException("Solving failed.", e);
    }
    return solution;
  }

Я также использую API constraintProvider. Есть ли способ получить доступ и изменить эту конфигурацию, автоматически созданную quarkus? Я пробовал основной способ с помощью файла solverFactory и xml conf, но Quarkus это совершенно не устраивает.

Заранее спасибо !


person Zakku    schedule 28.07.2020    source источник


Ответы (1)


Чтобы изменить конфигурацию решателя по умолчанию, создайте файл конфигурации XML в пути к классам проекта. Расширение optaplanner-quarkus по умолчанию пытается прочитать solverConfig.xml. В проекте он должен находиться в:

.../src/main/resources/solverConfig.xml

Местоположение файла конфигурации по умолчанию может быть изменено свойством quarkus.optaplanner.solver-config-xml в application.properties.

person Radovan Synek    schedule 29.07.2020
comment
Хорошо, большое спасибо, это работает, и теперь я могу играть по-настоящему. В моей папке с ресурсами не было файла solverConfig.xml, хотя и нигде, мне пришлось создать его самому. Я полагаю, что кварку до сих пор даже не требовалось, чтобы он работал. - person Zakku; 29.07.2020