Kaynağa Gözat

Add capability to return SUCCESS count and SMS specific segment count

in broadcast status message from CommEngine to portal.
tags/1.0.5
ymlam 4 yıl önce
ebeveyn
işleme
4c882c8134
3 değiştirilmiş dosya ile 21 ekleme ve 16 silme
  1. +20
    -2
      src/main/java/altk/comm/engine/Broadcast.java
  2. +1
    -4
      src/main/java/altk/comm/engine/CommEngine.java
  3. +0
    -10
      src/main/java/altk/comm/engine/Postback.java

+ 20
- 2
src/main/java/altk/comm/engine/Broadcast.java Dosyayı Görüntüle

@@ -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>" + transactions + "</transactions>");
statusBf.append("<success>" + successCount + "</success>");
statusBf.append("<job_summary completed='" + getCompletedJobCount() +
"' ready='" + getPendingJobCount() + "'");
statusBf.append(" active='" + getActiveJobCount() + "'");
statusBf.append("></job_summary></" + topLevelTag + ">\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());
}


+ 1
- 4
src/main/java/altk/comm/engine/CommEngine.java Dosyayı Görüntüle

@@ -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));



+ 0
- 10
src/main/java/altk/comm/engine/Postback.java Dosyayı Görüntüle

@@ -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
{


Yükleniyor…
İptal
Kaydet