All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.powsybl.ws.commons.computation.service.ExecutionService Maven / Gradle / Ivy

There is a newer version: 1.19.0
Show newest version
/**
 * Copyright (c) 2024, RTE (http://www.rte-france.com)
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */

package com.powsybl.ws.commons.computation.service;

import com.powsybl.computation.ComputationManager;
import com.powsybl.computation.local.LocalComputationManager;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.PreDestroy;
import lombok.Getter;
import lombok.SneakyThrows;
import org.springframework.stereotype.Service;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;


/**
 * @author David Braquart 
 */
@Service
@Getter
public class ExecutionService {

    private ExecutorService executorService;

    private ComputationManager computationManager;

    @SneakyThrows
    @PostConstruct
    private void postConstruct() {
        executorService = Executors.newCachedThreadPool();
        computationManager = new LocalComputationManager(getExecutorService());
    }

    @PreDestroy
    private void preDestroy() {
        executorService.shutdown();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy