mirror of
https://github.com/Alfresco/alfresco-transform-core.git
synced 2025-05-12 17:04:48 +00:00
MNT-23889 Fix liveness/readiness probes (#874)
Co-authored-by: Grzegorz Oleksy <grzegorz.oleksy@hyland.com>
This commit is contained in:
parent
2658e3ec41
commit
137ef8bcf9
@ -68,6 +68,7 @@ import java.util.Comparator;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
|
||||||
import static java.text.MessageFormat.format;
|
import static java.text.MessageFormat.format;
|
||||||
import static org.alfresco.transform.base.html.OptionsHelper.getOptionNames;
|
import static org.alfresco.transform.base.html.OptionsHelper.getOptionNames;
|
||||||
@ -115,6 +116,7 @@ public class TransformController
|
|||||||
private boolean behindIngres;
|
private boolean behindIngres;
|
||||||
|
|
||||||
TransformEngine transformEngine;
|
TransformEngine transformEngine;
|
||||||
|
private final AtomicReference<ProbeTransform> probeTransform = new AtomicReference<>();
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
private void initTransformEngine()
|
private void initTransformEngine()
|
||||||
@ -247,7 +249,17 @@ public class TransformController
|
|||||||
|
|
||||||
public ProbeTransform getProbeTransform()
|
public ProbeTransform getProbeTransform()
|
||||||
{
|
{
|
||||||
return transformEngine.getProbeTransform();
|
ProbeTransform probe = probeTransform.get();
|
||||||
|
if (probe != null)
|
||||||
|
{
|
||||||
|
return probe;
|
||||||
|
}
|
||||||
|
probe = transformEngine.getProbeTransform();
|
||||||
|
if (probeTransform.compareAndSet(null, probe))
|
||||||
|
{
|
||||||
|
return probe;
|
||||||
|
}
|
||||||
|
return probeTransform.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = ENDPOINT_TRANSFORM_CONFIG)
|
@GetMapping(value = ENDPOINT_TRANSFORM_CONFIG)
|
||||||
|
@ -176,11 +176,15 @@ public class ProbeTransform
|
|||||||
{
|
{
|
||||||
return doNothing(true);
|
return doNothing(true);
|
||||||
}
|
}
|
||||||
return (isLiveProbe && livenessTransformPeriod > 0 &&
|
|
||||||
|
String result = (isLiveProbe && livenessTransformPeriod > 0 &&
|
||||||
(transCount <= AVERAGE_OVER_TRANSFORMS || nextTransformTime < System.currentTimeMillis()))
|
(transCount <= AVERAGE_OVER_TRANSFORMS || nextTransformTime < System.currentTimeMillis()))
|
||||||
|| !initialised.get()
|
|| !initialised.get()
|
||||||
? doTransform(isLiveProbe, transformHandler)
|
? doTransform(isLiveProbe, transformHandler)
|
||||||
: doNothing(isLiveProbe);
|
: doNothing(isLiveProbe);
|
||||||
|
|
||||||
|
checkMaxTransformTimeAndCount(isLiveProbe);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String doNothing(boolean isLiveProbe)
|
private String doNothing(boolean isLiveProbe)
|
||||||
@ -196,8 +200,6 @@ public class ProbeTransform
|
|||||||
|
|
||||||
private String doTransform(boolean isLiveProbe, TransformHandler transformHandler)
|
private String doTransform(boolean isLiveProbe, TransformHandler transformHandler)
|
||||||
{
|
{
|
||||||
checkMaxTransformTimeAndCount(isLiveProbe);
|
|
||||||
|
|
||||||
long start = System.currentTimeMillis();
|
long start = System.currentTimeMillis();
|
||||||
|
|
||||||
if (nextTransformTime != 0)
|
if (nextTransformTime != 0)
|
||||||
@ -230,8 +232,6 @@ public class ProbeTransform
|
|||||||
// We don't care if the ready or live probe works out if we are 'ready' to take requests.
|
// We don't care if the ready or live probe works out if we are 'ready' to take requests.
|
||||||
initialised.set(true);
|
initialised.set(true);
|
||||||
|
|
||||||
checkMaxTransformTimeAndCount(isLiveProbe);
|
|
||||||
|
|
||||||
return getProbeMessage(isLiveProbe) + "Success - "+message;
|
return getProbeMessage(isLiveProbe) + "Success - "+message;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -254,7 +254,6 @@ public class ProbeTransform
|
|||||||
|
|
||||||
private File getSourceFile(boolean isLiveProbe)
|
private File getSourceFile(boolean isLiveProbe)
|
||||||
{
|
{
|
||||||
incrementTransformerCount();
|
|
||||||
File sourceFile = createTempFile("probe_source_", "_" + sourceFilename);
|
File sourceFile = createTempFile("probe_source_", "_" + sourceFilename);
|
||||||
try (InputStream inputStream = getClass().getResourceAsStream('/' + sourceFilename))
|
try (InputStream inputStream = getClass().getResourceAsStream('/' + sourceFilename))
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user