[New] added ArchiveExecutedActivitiesJob

This commit is contained in:
Robert von Burg 2018-10-05 13:31:33 +02:00
parent d7b4bef70c
commit 1c6d873e5c
1 changed files with 35 additions and 0 deletions

View File

@ -0,0 +1,35 @@
package li.strolch.execution;
import java.util.concurrent.TimeUnit;
import li.strolch.agent.api.StrolchAgent;
import li.strolch.job.JobMode;
import li.strolch.job.StrolchJob;
import li.strolch.model.State;
import li.strolch.persistence.api.StrolchTransaction;
import li.strolch.privilege.model.PrivilegeContext;
public class ArchiveExecutedActivitiesJob extends StrolchJob {
public ArchiveExecutedActivitiesJob(StrolchAgent agent) {
super(agent, JobMode.Manual, 0, TimeUnit.MINUTES, 0, TimeUnit.MINUTES);
}
public ArchiveExecutedActivitiesJob(StrolchAgent agent, JobMode jobMode, long initialDelay, TimeUnit initialDelayTimeUnit, long delay,
TimeUnit delayTimeUnit) {
super(agent, jobMode, initialDelay, initialDelayTimeUnit, delay, delayTimeUnit);
}
@Override
protected void execute(PrivilegeContext ctx) {
ExecutionHandler executionHandler = getComponent(ExecutionHandler.class);
try (StrolchTransaction tx = openTx(ctx.getCertificate())) {
tx.streamActivities().forEach(activity -> {
if (activity.getState() == State.EXECUTED)
executionHandler.archiveActivity(tx.getRealmName(), activity.getLocator());
});
}
}
}