Перейти к содержанию

Асинхронный запуск расчётов

Для асинхронного запуска расчётов используется метод model.solve_remote_async(). Метод solve_remote_async() отличается от синхронного solve_remote() тем, что не возвращает результат расчёта (объект SolveResult) и не ожидает окончания расчёта. Оба метода требуют указать путь к файлу, в который будет записан список всех имен модели до анонимизации и после (все имена переменных, ограничений, а также целевой функции). Результат расчёта можно получить позднее по универсальному идентификатору расчёта и по имени файла анонимизации модели.

Для получения идентификатора необходимо у модели вызвать метод get_calc_uid():

uid = model.get_calc_uid()

Для получения результата с помощью этого идентификатора необходимо создать объект SolveResult и в конструктор передать идентификатор и путь к файлу анонимизации модели, созданному ранее:

uid = model.get_calc_uid()
result_by_uid = arhiplexpy.SolveResult(uid, "name_mapping.txt")

print("Objective:", result_by_uid.get_objective_value())