use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project openolat by klemens.
the class PersistentTaskDAOTest method findTask_withResourceAndSubPath.
@Test
public void findTask_withResourceAndSubPath() {
RepositoryEntry re = JunitTestHelper.createAndPersistRepositoryEntry();
Identity creator = JunitTestHelper.createAndPersistIdentityAsUser("extask-1-" + UUID.randomUUID().toString());
dbInstance.commitAndCloseSession();
String taskName = UUID.randomUUID().toString();
PersistentTask task = persistentTaskDao.createTask(taskName, new DummyTask(), creator, re.getOlatResource(), "mySubPath", null);
PersistentTask taskAlt = persistentTaskDao.createTask(taskName, new DummyTask(), creator, re.getOlatResource(), "otherPath", null);
Assert.assertNotNull(task);
Assert.assertNotNull(taskAlt);
dbInstance.commitAndCloseSession();
List<Task> tasks = persistentTaskDao.findTasks(re.getOlatResource(), "mySubPath");
Assert.assertNotNull(tasks);
Assert.assertEquals(1, tasks.size());
Assert.assertEquals(task, tasks.get(0));
}
use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project openolat by klemens.
the class PersistentTaskDAO method delete.
public boolean delete(Task task) {
PersistentTask reloadedTask = dbInstance.getCurrentEntityManager().find(PersistentTask.class, task.getKey(), LockModeType.PESSIMISTIC_WRITE);
dbInstance.getCurrentEntityManager().createQuery("delete from extaskmodifier taskmod where taskmod.task.key=:taskKey").setParameter("taskKey", task.getKey()).executeUpdate();
dbInstance.getCurrentEntityManager().remove(reloadedTask);
dbInstance.commit();
return true;
}
use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project openolat by klemens.
the class PersistentTaskDAO method createTask.
public PersistentTask createTask(String name, Serializable task) {
PersistentTask ptask = new PersistentTask();
Date currentDate = new Date();
ptask.setCreationDate(currentDate);
ptask.setLastModified(currentDate);
ptask.setName(name);
ptask.setStatus(TaskStatus.newTask);
ptask.setTask(xstream.toXML(task));
dbInstance.getCurrentEntityManager().persist(ptask);
return ptask;
}
use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project openolat by klemens.
the class PersistentTaskDAO method pickTaskForEdition.
public PersistentTask pickTaskForEdition(Long taskKey) {
PersistentTask task = dbInstance.getCurrentEntityManager().find(PersistentTask.class, taskKey, LockModeType.PESSIMISTIC_WRITE);
PersistentTask mtask;
if (TaskStatus.inWork.equals(task.getStatus()) || TaskStatus.edition.equals(task.getStatus())) {
// cannot pick
mtask = null;
} else {
task.setStatusBeforeEditStr(task.getStatusStr());
task.setStatus(TaskStatus.edition);
mtask = dbInstance.getCurrentEntityManager().merge(task);
}
dbInstance.commit();
return mtask;
}
use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project openolat by klemens.
the class TaskExecutorManagerImpl method processTaskToDo.
protected void processTaskToDo() {
try {
List<Long> todos = persistentTaskDao.tasksToDo();
for (Long todo : todos) {
PersistentTask task = persistentTaskDao.loadTaskById(todo);
Runnable runnable = persistentTaskDao.deserializeTask(task);
PersistentTaskRunnable command = new PersistentTaskRunnable(todo);
execute(command, null, (runnable instanceof Sequential));
}
} catch (Exception e) {
// ups, something went completely wrong! We log this but continue next time
log.error("Error while executing task todo", e);
}
}
Aggregations