Update of
/var/cvs/applications/crontab/src/org/mmbase/applications/crontab/builders
In directory james.mmbase.org:/tmp/cvs-serv917/builders
Modified Files:
CronJobs.java
Log Message:
on reload of the module, also reload the jobs defined by the cronjobs builder
See also:
http://cvs.mmbase.org/viewcvs/applications/crontab/src/org/mmbase/applications/crontab/builders
Index: CronJobs.java
===================================================================
RCS file:
/var/cvs/applications/crontab/src/org/mmbase/applications/crontab/builders/CronJobs.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- CronJobs.java 2 Dec 2008 09:10:36 -0000 1.11
+++ CronJobs.java 9 Dec 2008 13:38:49 -0000 1.12
@@ -20,7 +20,7 @@
* The builder also starts the CronDeamon. on startup the list of cronjobs is
loaded into memory.
* <b>The builder uses the bridge to get a cloud using class security.</b>
* @author Kees Jongenburger
- * @version $Id: CronJobs.java,v 1.11 2008/12/02 09:10:36 michiel Exp $
+ * @version $Id: CronJobs.java,v 1.12 2008/12/09 13:38:49 michiel Exp $
*/
public class CronJobs extends MMObjectBuilder {
@@ -33,23 +33,42 @@
boolean res = super.init();
org.mmbase.util.ThreadPools.jobsExecutor.execute(new Runnable() {
public void run() {
+ CronJobs.this.readJobs();
+ }
+ });
+ return res;
+ }
+
+ private final Set<NodeCronEntry> myJobs = new HashSet<NodeCronEntry>();
+
+
+ public static CronJobs getBuilder() {
+ return (CronJobs) MMBase.getMMBase().getBuilder("cronjobs");
+ }
+
+ public void readJobs() {
+ Cloud cloud = getCloud();
+
CronDaemon cronDaemon = CronDaemon.getInstance();
- NodeIterator nodeIterator =
getCloud().getNodeManager(getTableName()).getList(null, null,
null).nodeIterator();
+ for(NodeCronEntry e : myJobs) {
+ cronDaemon.remove(e);
+ }
+ myJobs.clear();
+
+ log.service("Loading jobs from " + this);
+ NodeIterator nodeIterator =
cloud.getNodeManager(getTableName()).getList(null, null, null).nodeIterator();
while (nodeIterator.hasNext()) {
Node node = nodeIterator.nextNode();
- CronEntry entry = null;
try {
- entry = new NodeCronEntry(node);
+ NodeCronEntry entry = new NodeCronEntry(node);
log.service("Adding cron entry [" + entry + "]");
+ myJobs.add(entry);
cronDaemon.add(entry);
} catch (Exception e) {
log.warn("did not add cronjob with id " +
node.getNumber() + " because of error " + e.getMessage());
}
}
}
- });
- return res;
- }
@Override public void notify(NodeEvent event) {
log.debug("Received " + event);
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs