From 4c882c813461e3ecc8d1e51d7dbf9b5b27085a94 Mon Sep 17 00:00:00 2001 From: ymlam Date: Tue, 13 Jul 2021 20:15:26 -0400 Subject: [PATCH] Add capability to return SUCCESS count and SMS specific segment count in broadcast status message from CommEngine to portal. --- src/main/java/altk/comm/engine/Broadcast.java | 22 +++++++++++++++++-- .../java/altk/comm/engine/CommEngine.java | 5 +---- src/main/java/altk/comm/engine/Postback.java | 10 --------- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/src/main/java/altk/comm/engine/Broadcast.java b/src/main/java/altk/comm/engine/Broadcast.java index db8193b..2f78172 100644 --- a/src/main/java/altk/comm/engine/Broadcast.java +++ b/src/main/java/altk/comm/engine/Broadcast.java @@ -19,6 +19,7 @@ import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; +import altk.comm.engine.Job.JobStatus; import altk.comm.engine.exception.BroadcastError; import altk.comm.engine.exception.BroadcastException; import altk.comm.engine.exception.EngineException; @@ -79,6 +80,9 @@ public abstract class Broadcast private Integer transactions; private Integer serviceActivityCount; + + /** Running count of successful jobs */ + private int successCount; public static enum BroadcastState @@ -812,7 +816,7 @@ public abstract class Broadcast /** * Defaults to current state - * @return + * @return XML string */ protected String mkStatusReport() { @@ -851,14 +855,26 @@ public abstract class Broadcast } } statusBf.append("" + transactions + ""); + statusBf.append("" + successCount + ""); statusBf.append("\r\n"); + statusBf.append(additionalStatusXML()); String statusReport = statusBf.toString(); return statusReport; } + /** + * Derived class may add additional status in a broadcast status XML posted back to portal, + * by returning an XML tag which will be included immediately in the top-level tag + * of the broadcast status. + */ + protected String additionalStatusXML() + { + return ""; + } + protected void onExpire() { } @@ -1148,7 +1164,8 @@ public abstract class Broadcast } /** - * Sets jobStatus in job, and post job report. + * Constructs job report for given job, and posts report in postback queue. + * If job status is SUCCESS, then the class attribute successCount in incremented by 1.. * Optionally reschedules job. * If no rescheduling, then decrement number of remainingJobs, * @param job @@ -1162,6 +1179,7 @@ public abstract class Broadcast JobReport report = mkJobReport(); report.initBase(job, broadcastId, launchRecordId, activityRecordIdParamName, jobReportRootNodeName); report.init(job); + if (job.jobStatus == JobStatus.SUCCESS) successCount++; postback.queueReport(report.toString()); } diff --git a/src/main/java/altk/comm/engine/CommEngine.java b/src/main/java/altk/comm/engine/CommEngine.java index 0320f6b..3b2713e 100644 --- a/src/main/java/altk/comm/engine/CommEngine.java +++ b/src/main/java/altk/comm/engine/CommEngine.java @@ -29,8 +29,6 @@ public abstract class CommEngine extends HttpServlet static final String REQUEST_TOP_ELEMENT_NAME_DEFAULT = "Request"; - private static final int SCHEDULER_THREAD_POOL_SIZE = 1; - private static final long DEAD_BROADCAST_VIEWING_PERIOD_DEFAULT = 60; public static final String SERVICE_THREADPOOL_SIZE_KEY = "service_threadpool_size"; @@ -184,8 +182,7 @@ public abstract class CommEngine extends HttpServlet } // Set up periodic purge of stale broadcasts, based on deadBroadcastViewingMinutes - String periodStr = config.getProperty("dead_broadcast_viewing_period", - new Long(DEAD_BROADCAST_VIEWING_PERIOD_DEFAULT).toString()); + String periodStr = config.getProperty("dead_broadcast_viewing_period", Long.toString(DEAD_BROADCAST_VIEWING_PERIOD_DEFAULT)); deadBroadcastViewingMinutes = Long.parseLong(periodStr); CommonLogger.startup.info(String.format("Dead broadcast viewing period: %d minutes", deadBroadcastViewingMinutes)); diff --git a/src/main/java/altk/comm/engine/Postback.java b/src/main/java/altk/comm/engine/Postback.java index 2fc7ffb..8dfbd28 100644 --- a/src/main/java/altk/comm/engine/Postback.java +++ b/src/main/java/altk/comm/engine/Postback.java @@ -10,7 +10,6 @@ import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; -import java.util.Queue; import javax.net.ssl.SSLContext; import javax.xml.parsers.DocumentBuilder; @@ -89,8 +88,6 @@ public class Postback protected int postedTransactions; - private boolean shutdownWhenDone; - private static Logger myLogger = Logger.getLogger(Postback.class); public enum PostbackStatus @@ -430,16 +427,9 @@ public class Postback return false; } - private boolean threadsShouldStop() - { - //return (shutdownWhenDone); // && postedTransactions == broadcast.transactions); - return broadcast.postbackThreadsShouldStop(); - } - public void wrapup() { myLogger.debug("Wrapping up"); - shutdownWhenDone = true; try {