Update of /var/cvs/applications/crontab/src/org/mmbase/applications/crontab
In directory james.mmbase.org:/tmp/cvs-serv17292/crontab
Modified Files:
CronEntry.java Interruptable.java ProposedJobs.java
Added Files:
Events.java
Log Message:
scheduling events on start and end of job
See also:
http://cvs.mmbase.org/viewcvs/applications/crontab/src/org/mmbase/applications/crontab
Events.java is new
Index: CronEntry.java
===================================================================
RCS file:
/var/cvs/applications/crontab/src/org/mmbase/applications/crontab/CronEntry.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- CronEntry.java 29 Jul 2008 15:21:45 -0000 1.14
+++ CronEntry.java 29 Jul 2008 15:42:24 -0000 1.15
@@ -12,6 +12,7 @@
import org.mmbase.module.core.MMBase;
import org.mmbase.util.HashCodeUtil;
+import org.mmbase.core.event.EventManager;
import org.mmbase.util.logging.*;
/**
@@ -19,7 +20,7 @@
*
* @author Kees Jongenburger
* @author Michiel Meeuwissen
- * @version $Id: CronEntry.java,v 1.14 2008/07/29 15:21:45 michiel Exp $
+ * @version $Id: CronEntry.java,v 1.15 2008/07/29 15:42:24 michiel Exp $
*/
public class CronEntry implements java.io.Serializable {
@@ -193,10 +194,17 @@
public void run() {
CronEntry.this.incCount();
CronEntry.this.setLastCost((int) (new Date().getTime() -
start.getTime()));
+ EventManager.getInstance().propagateEvent(new
Events.Event(CronEntry.this, Events.DONE));
}
};
+ Runnable begin = new Runnable() {
+ public void run() {
+ EventManager.getInstance().propagateEvent(new
Events.Event(CronEntry.this, Events.STARTED));
+ }
+ };
+
setLastRun(start);
- Interruptable thread = new Interruptable(cronJob, threads, ready);
+ Interruptable thread = new Interruptable(cronJob, threads, begin,
ready);
return thread;
}
@@ -212,7 +220,7 @@
return true;
}
case BALANCE: {
-
org.mmbase.core.event.EventManager.getInstance().propagateEvent(new
ProposedJobs.Event(this, currentTime));
+ EventManager.getInstance().propagateEvent(new
ProposedJobs.Event(this, currentTime));
return true;
}
case MUSTBEONE:
Index: Interruptable.java
===================================================================
RCS file:
/var/cvs/applications/crontab/src/org/mmbase/applications/crontab/Interruptable.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- Interruptable.java 14 Jul 2008 13:51:36 -0000 1.5
+++ Interruptable.java 29 Jul 2008 15:42:24 -0000 1.6
@@ -15,7 +15,7 @@
* if the job does sleeps (InterruptedException) or check
Thread.isInterrupted().
* @author Michiel Meeuwissen
* @since MMBase-1.8
- * @version $Id: Interruptable.java,v 1.5 2008/07/14 13:51:36 michiel Exp $
+ * @version $Id: Interruptable.java,v 1.6 2008/07/29 15:42:24 michiel Exp $
*/
public class Interruptable implements Runnable {
@@ -25,20 +25,22 @@
private final Runnable runnable;
private final Collection<Interruptable> collection;
private final Runnable ready;
+ private final Runnable start;
public Interruptable(Runnable run, Collection<Interruptable> col) {
- this(run, col, null);
+ this(run, col, null, null);
}
/**
* @param run The runnable wrapped by this Interrupted, which is to be
executed in [EMAIL PROTECTED] #run}.
* @param col A modifiable collection or <code>null</code> If not null,
this interruptable is
* added to it just before running, and removed from it just
after running.
*/
- public Interruptable(Runnable run, Collection<Interruptable> col, Runnable
r) {
+ public Interruptable(Runnable run, Collection<Interruptable> col, Runnable
s, Runnable r) {
runnable = run;
collection = col;
ready = r;
+ start = s;
}
public void run() {
@@ -47,6 +49,7 @@
runThread = Thread.currentThread();
startTime = new Date();
try {
+ if (start != null) start.run();
runnable.run();
if (ready != null) ready.run();
} catch (Throwable t) {
Index: ProposedJobs.java
===================================================================
RCS file:
/var/cvs/applications/crontab/src/org/mmbase/applications/crontab/ProposedJobs.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- ProposedJobs.java 29 Jul 2008 15:21:45 -0000 1.2
+++ ProposedJobs.java 29 Jul 2008 15:42:24 -0000 1.3
@@ -19,16 +19,12 @@
/**
* @author Michiel Meeuwissen
- * @version $Id: ProposedJobs.java,v 1.2 2008/07/29 15:21:45 michiel Exp $
+ * @version $Id: ProposedJobs.java,v 1.3 2008/07/29 15:42:24 michiel Exp $
*/
public class ProposedJobs {
private static final Logger log =
Logging.getLoggerInstance(ProposedJobs.class);
-
- public static int TYPE_PROPOSE = 100;
- public static int TYPE_DONE = 101;
-
public static class Event extends org.mmbase.core.event.Event implements
Delayed, java.io.Serializable {
private static final long WAIT = 30 * 1000;
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs