Compare commits
10 Commits
Author | SHA1 | Date |
---|---|---|
Luca Frosini | f41c7fb461 | |
Luca Frosini | 74dae88836 | |
Luca Frosini | 93457fe823 | |
Luca Frosini | 81002fccd1 | |
Luca Frosini | 940d0cba9d | |
Luca Frosini | 85a92bac67 | |
Luca Frosini | cecc27920c | |
Luca Frosini | 40166c4116 | |
Luca Frosini | 5bad218e6e | |
Luca Frosini | 840bd00275 |
|
@ -2,6 +2,13 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|||
|
||||
# Changelog for Smart Executor Service
|
||||
|
||||
## [v3.2.1-SNAPSHOT]
|
||||
|
||||
- Fixed bug on concurrent attempt to enter in a session while trying to schedule a second task #27319
|
||||
- Fixed bug on concurrent attempt to enter in a session while trying to execute another task #24116
|
||||
- Upgraded gcube-smartgears-bom to 2.6.0-SNAPSHOT
|
||||
|
||||
|
||||
## [v3.2.0]
|
||||
|
||||
- Fixed RequestFilter to avoid to remove info to Smartgears
|
||||
|
@ -13,6 +20,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|||
|
||||
- Ported service to authorization-utils [#22871]
|
||||
|
||||
|
||||
## [v3.0.0]
|
||||
|
||||
- Switched smart-executor JSON management to gcube-jackson [#19647]
|
||||
|
|
4
pom.xml
4
pom.xml
|
@ -11,7 +11,7 @@
|
|||
|
||||
<groupId>org.gcube.vremanagement</groupId>
|
||||
<artifactId>smart-executor</artifactId>
|
||||
<version>3.2.0</version>
|
||||
<version>3.2.1-SNAPSHOT</version>
|
||||
<name>SmartExecutor</name>
|
||||
<description>Smart Executor Service allows to launch recurrent tasks such as task for infrastructure management, healthy monitoring etc.</description>
|
||||
<packaging>war</packaging>
|
||||
|
@ -34,7 +34,7 @@
|
|||
<dependency>
|
||||
<groupId>org.gcube.distribution</groupId>
|
||||
<artifactId>gcube-smartgears-bom</artifactId>
|
||||
<version>2.5.0</version>
|
||||
<version>2.6.0-SNAPSHOT</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
|
|
|
@ -148,24 +148,27 @@ public class SmartExecutorInitializator implements ApplicationManager {
|
|||
Secret secret = SecretUtility.getSecretByTokenString(scheduledTasktoken);
|
||||
|
||||
SecretManager secretManager = SecretManagerProvider.instance.get();
|
||||
try {
|
||||
secretManager.startSession(secret);
|
||||
SmartExecutorScheduler smartExecutorScheduler = SmartExecutorSchedulerFactory.getSmartExecutorScheduler();
|
||||
// A new Scheduled Task will be persisted due to launch. Removing it
|
||||
smartExecutorPersistenceConnector.removeScheduledTask(scheduledTask);
|
||||
smartExecutorScheduler.schedule(launchParameter, scheduledTask.getUUID());
|
||||
} catch (Exception e) {
|
||||
logger.error("({}) Error while trying to relaunch scheduled task.", context, e);
|
||||
synchronized (secretManager) {
|
||||
try {
|
||||
smartExecutorPersistenceConnector.addScheduledTask(scheduledTask);
|
||||
} catch (Exception ex) {
|
||||
logger.error("({}) Unable to add back scheduled task {}", context, taskAsString);
|
||||
logger.trace("Starting a Secret Manager session (synchronized block)...");
|
||||
secretManager.startSession(secret);
|
||||
SmartExecutorScheduler smartExecutorScheduler = SmartExecutorSchedulerFactory.getSmartExecutorScheduler();
|
||||
// A new Scheduled Task will be persisted due to launch. Removing it
|
||||
smartExecutorPersistenceConnector.removeScheduledTask(scheduledTask);
|
||||
smartExecutorScheduler.schedule(launchParameter, scheduledTask.getUUID());
|
||||
} catch (Exception e) {
|
||||
logger.error("({}) Error while trying to relaunch scheduled task.", context, e);
|
||||
try {
|
||||
smartExecutorPersistenceConnector.addScheduledTask(scheduledTask);
|
||||
} catch (Exception ex) {
|
||||
logger.error("({}) Unable to add back scheduled task {}", context, taskAsString);
|
||||
}
|
||||
}finally {
|
||||
secretManager.endSession();
|
||||
logger.trace("Secret Manager session terminated (synchronized block).");
|
||||
}
|
||||
}finally {
|
||||
secretManager.endSession();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
|
|
@ -75,7 +75,7 @@ public class RunnablePlugin<T extends Plugin> implements Runnable {
|
|||
|
||||
|
||||
@Override
|
||||
public void run(){
|
||||
public synchronized void run(){
|
||||
String pluginName = plugin.getName();
|
||||
|
||||
logger.info("{} : {} is going to be launched (UUID={}, iterationNumber={}) with the following inputs {}",
|
||||
|
@ -85,10 +85,10 @@ public class RunnablePlugin<T extends Plugin> implements Runnable {
|
|||
JobUsageRecord jobUsageRecord = new JobUsageRecord();
|
||||
|
||||
long startTime = actualStateEvolution.getTimestamp();
|
||||
Secret secret = SecretUtility.getSecretByTokenString(token);
|
||||
SecretManager secretManager = SecretManagerProvider.instance.get();
|
||||
|
||||
try {
|
||||
Secret secret = SecretUtility.getSecretByTokenString(token);
|
||||
secretManager.startSession(secret);
|
||||
|
||||
setState(PluginState.RUNNING);
|
||||
|
|
Loading…
Reference in New Issue