Merge "Issue #2828 Added purge cron to Central SBN Simulator." into development
Former-commit-id:66d3fce57d
[formerlye923639fb1
] [formerly66d3fce57d
[formerlye923639fb1
] [formerly58a3aac09d
[formerly d76c2325618af08be1f20ebec0b2463a49a9b03f]]] Former-commit-id:58a3aac09d
Former-commit-id:9ba35d60bd
[formerly5937649085
] Former-commit-id:0951bec15c
This commit is contained in:
commit
972f6a61d6
3 changed files with 63 additions and 5 deletions
|
@ -3,8 +3,10 @@
|
|||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
|
||||
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
|
||||
|
||||
<bean id="sbnSimulator"
|
||||
class="com.raytheon.uf.edex.datadelivery.bandwidth.sbn.SbnSimulator" />
|
||||
<bean id="sbnSimulator"
|
||||
class="com.raytheon.uf.edex.datadelivery.bandwidth.sbn.SbnSimulator">
|
||||
<property name="fileExpirationInMilliseconds" value="${sbnSimulator-fileExpirationInMilliseconds}" />
|
||||
</bean>
|
||||
|
||||
<camelContext id="SbnSimulator-context"
|
||||
xmlns="http://camel.apache.org/schema/spring" errorHandlerRef="errorHandler">
|
||||
|
@ -12,6 +14,9 @@
|
|||
<endpoint id="checkForSbnDataCron"
|
||||
uri="quartz://datadelivery/sbnSimulator?cron=${sbnSimulator-checkForSbnData.cron}" />
|
||||
|
||||
<endpoint id="sbnSimulatorPurgeCron"
|
||||
uri="quartz://datadelivery/sbnSimulatorPurge?cron=${sbnSimulator-sbnDataPurge.cron}" />
|
||||
|
||||
<route id="distributeToSiteDirs">
|
||||
<from uri="checkForSbnDataCron" />
|
||||
<doTry>
|
||||
|
@ -25,6 +30,21 @@
|
|||
</doCatch>
|
||||
</doTry>
|
||||
</route>
|
||||
|
||||
<route id="purgeSbnSimulatorFiles">
|
||||
<from uri="sbnSimulatorPurgeCron" />
|
||||
<doTry>
|
||||
<pipeline>
|
||||
<bean ref="sbnSimulator" method="purgeSbnSimulatorFiles" />
|
||||
</pipeline>
|
||||
<doCatch>
|
||||
<exception>java.lang.Throwable</exception>
|
||||
<to
|
||||
uri="log:SbnSimulator" />
|
||||
</doCatch>
|
||||
</doTry>
|
||||
</route>
|
||||
|
||||
</camelContext>
|
||||
|
||||
</beans>
|
|
@ -1,2 +1,6 @@
|
|||
# How often to check for dropped off SBN data
|
||||
sbnSimulator-checkForSbnData.cron=0+*+*+*+*+?
|
||||
sbnSimulator-checkForSbnData.cron=0+*+*+*+*+?
|
||||
# cron to Purge old SBN data files
|
||||
sbnSimulator-sbnDataPurge.cron=0+0+0/2+*+*+?
|
||||
# age in milliseconds that sbn data files should be removed
|
||||
sbnSimulator-fileExpirationInMilliseconds=7200000
|
|
@ -43,6 +43,7 @@ import com.raytheon.uf.edex.core.EDEXUtil;
|
|||
* ------------ ---------- ----------- --------------------------
|
||||
* Mar 14, 2013 1648 djohnson Initial creation
|
||||
* Oct 18, 2013 2267 bgonzale Added distribution to and check in site specific directories.
|
||||
* Feb 13, 2014 2828 bgonzale Add purge method.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -94,6 +95,8 @@ public class SbnSimulator {
|
|||
|
||||
private String site;
|
||||
|
||||
private long fileExpirationInMilliseconds;
|
||||
|
||||
/**
|
||||
* Private constructor.
|
||||
*/
|
||||
|
@ -151,8 +154,7 @@ public class SbnSimulator {
|
|||
*/
|
||||
public void distributeToSiteDirs() throws IOException {
|
||||
final List<File> undistributedFiles = FileUtil.listFiles(
|
||||
directoryToScan,
|
||||
FilenameFilters.ACCEPT_FILES, false);
|
||||
directoryToScan, FilenameFilters.ACCEPT_FILES, false);
|
||||
// get list of site dirs
|
||||
final List<File> sites = FileUtil.listFiles(sitesDirectory,
|
||||
FilenameFilters.ACCEPT_DIRECTORIES, false);
|
||||
|
@ -178,6 +180,38 @@ public class SbnSimulator {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Purge Sbn simulator data files that are older than the given expiration
|
||||
* time.
|
||||
*/
|
||||
public void purgeSbnSimulatorFiles() {
|
||||
final List<File> siteDirectories = FileUtil.listFiles(sitesDirectory,
|
||||
FilenameFilters.ACCEPT_DIRECTORIES, false);
|
||||
|
||||
for (File siteDir : siteDirectories) {
|
||||
final List<File> filesInDir = FileUtil.listFiles(siteDir,
|
||||
FilenameFilters.ACCEPT_FILES, false);
|
||||
int fileCount = 0;
|
||||
|
||||
for (File file : filesInDir) {
|
||||
if (System.currentTimeMillis() - file.lastModified() > fileExpirationInMilliseconds) {
|
||||
if (file.delete()) {
|
||||
++fileCount;
|
||||
}
|
||||
}
|
||||
}
|
||||
statusHandler.info("purged " + fileCount
|
||||
+ " sbn simulation data file(s) in " + siteDir);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param fileExpirationInMilliseconds the fileExpirationInMilliseconds to set
|
||||
*/
|
||||
public void setFileExpirationInMilliseconds(long fileExpirationInMilliseconds) {
|
||||
this.fileExpirationInMilliseconds = fileExpirationInMilliseconds;
|
||||
}
|
||||
|
||||
// TODO Java 1.7 version of the distributeToSiteDirs() method
|
||||
// /**
|
||||
// * Distribute to the site directories. Enables all site client registries
|
||||
|
|
Loading…
Add table
Reference in a new issue