Search in sources :

Example 21 with TaskId

use of com.enonic.xp.task.TaskId in project xp by enonic.

the class TaskServiceImplTest method submitTask_DescriptorKey_offload_to_clustered_wait_success.

@Test
void submitTask_DescriptorKey_offload_to_clustered_wait_success() {
    final DescriptorKey descriptorKey = DescriptorKey.from("module:my-admin-tool");
    final TaskManager clusteredTaskManager = mock(TaskManager.class);
    when(taskConfig.distributable_acceptInbound()).thenReturn(false);
    taskService.activate(taskConfig);
    CompletableFuture.runAsync(() -> taskService.setClusteredTaskManager(clusteredTaskManager), CompletableFuture.delayedExecutor(1, TimeUnit.SECONDS));
    final TaskId taskId = taskService.submitTask(SubmitTaskParams.create().descriptorKey(descriptorKey).build());
    verify(clusteredTaskManager).submitTask(describedTaskCaptor.capture());
    describedTaskCaptor.getValue();
    final DescribedTask argument = describedTaskCaptor.getValue();
    assertEquals(taskId, argument.getTaskId());
}
Also used : TaskManager(com.enonic.xp.impl.task.distributed.TaskManager) TaskId(com.enonic.xp.task.TaskId) DescriptorKey(com.enonic.xp.page.DescriptorKey) DescribedTask(com.enonic.xp.impl.task.distributed.DescribedTask) Test(org.junit.jupiter.api.Test)

Example 22 with TaskId

use of com.enonic.xp.task.TaskId in project xp by enonic.

the class SchedulerServiceImplTest method modifyClearLastRun.

@Test
void modifyClearLastRun() throws Exception {
    final ScheduledJobName name = ScheduledJobName.from("test");
    adminContext().callWith(() -> schedulerService.create(CreateScheduledJobParams.create().name(name).descriptor(DescriptorKey.from(ApplicationKey.from("com.enonic.app.test"), "task1")).calendar(calendarService.cron("* * * * *", TimeZone.getTimeZone("GMT+5:30"))).config(new PropertyTree()).build()));
    final TaskId lastTaskId = TaskId.from("task-id");
    final Instant lastRun = Instant.parse("2021-02-25T10:44:33.170079900Z");
    adminContext().runWith(() -> UpdateLastRunCommand.create().name(name).lastTaskId(lastTaskId).lastRun(lastRun).nodeService(nodeService).build().execute());
    final ScheduledJob runJob = adminContext().callWith(() -> schedulerService.get(name));
    assertEquals(lastRun, runJob.getLastRun());
    assertEquals(lastTaskId, runJob.getLastTaskId());
    final ScheduledJob modifiedJob = adminContext().callWith(() -> schedulerService.modify(ModifyScheduledJobParams.create().name(name).editor(edit -> {
        edit.enabled = true;
    }).build()));
    assertNull(modifiedJob.getLastRun());
    assertNull(modifiedJob.getLastTaskId());
}
Also used : SchedulerExecutorService(com.enonic.xp.impl.scheduler.SchedulerExecutorService) BeforeEach(org.junit.jupiter.api.BeforeEach) IdProviderKey(com.enonic.xp.security.IdProviderKey) ArgumentMatchers.eq(org.mockito.ArgumentMatchers.eq) OneTimeCalendar(com.enonic.xp.scheduler.OneTimeCalendar) SchedulerConstants(com.enonic.xp.scheduler.SchedulerConstants) UpdateLastRunCommand(com.enonic.xp.impl.scheduler.UpdateLastRunCommand) ScheduledJob(com.enonic.xp.scheduler.ScheduledJob) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) ContextAccessor(com.enonic.xp.context.ContextAccessor) SchedulerServiceImpl(com.enonic.xp.impl.scheduler.SchedulerServiceImpl) ScheduledTaskHandler(com.hazelcast.scheduledexecutor.ScheduledTaskHandler) ContextBuilder(com.enonic.xp.context.ContextBuilder) User(com.enonic.xp.security.User) MockitoExtension(org.mockito.junit.jupiter.MockitoExtension) TimeZone(java.util.TimeZone) Set(java.util.Set) SchedulerConfig(com.enonic.xp.impl.scheduler.SchedulerConfig) Instant(java.time.Instant) ScheduleAuditLogSupportImpl(com.enonic.xp.impl.scheduler.ScheduleAuditLogSupportImpl) TaskId(com.enonic.xp.task.TaskId) Test(org.junit.jupiter.api.Test) AbstractNodeTest(com.enonic.xp.repo.impl.node.AbstractNodeTest) CronCalendar(com.enonic.xp.scheduler.CronCalendar) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) RoleKeys(com.enonic.xp.security.RoleKeys) Context(com.enonic.xp.context.Context) CreateScheduledJobParams(com.enonic.xp.scheduler.CreateScheduledJobParams) IScheduledFuture(com.hazelcast.scheduledexecutor.IScheduledFuture) ScheduleCalendar(com.enonic.xp.scheduler.ScheduleCalendar) Mockito.mock(org.mockito.Mockito.mock) Strictness(org.mockito.quality.Strictness) ScheduleAuditLogExecutorImpl(com.enonic.xp.impl.scheduler.ScheduleAuditLogExecutorImpl) Assertions.assertThrows(org.junit.jupiter.api.Assertions.assertThrows) MockitoSettings(org.mockito.junit.jupiter.MockitoSettings) ModifyScheduledJobParams(com.enonic.xp.scheduler.ModifyScheduledJobParams) Mock(org.mockito.Mock) Assertions.assertNull(org.junit.jupiter.api.Assertions.assertNull) NodeNotFoundException(com.enonic.xp.node.NodeNotFoundException) ScheduleCalendarType(com.enonic.xp.scheduler.ScheduleCalendarType) AuditLogService(com.enonic.xp.audit.AuditLogService) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) PropertyTree(com.enonic.xp.data.PropertyTree) NodeAlreadyExistAtPathException(com.enonic.xp.node.NodeAlreadyExistAtPathException) CalendarServiceImpl(com.enonic.xp.impl.scheduler.CalendarServiceImpl) AuthenticationInfo(com.enonic.xp.security.auth.AuthenticationInfo) Mockito.times(org.mockito.Mockito.times) Mockito.when(org.mockito.Mockito.when) ApplicationKey(com.enonic.xp.app.ApplicationKey) Mockito.verify(org.mockito.Mockito.verify) Mockito(org.mockito.Mockito) PrincipalKey(com.enonic.xp.security.PrincipalKey) DescriptorKey(com.enonic.xp.page.DescriptorKey) NodeAccessException(com.enonic.xp.node.NodeAccessException) ScheduledJobName(com.enonic.xp.scheduler.ScheduledJobName) TaskId(com.enonic.xp.task.TaskId) ScheduledJobName(com.enonic.xp.scheduler.ScheduledJobName) PropertyTree(com.enonic.xp.data.PropertyTree) Instant(java.time.Instant) ScheduledJob(com.enonic.xp.scheduler.ScheduledJob) Test(org.junit.jupiter.api.Test) AbstractNodeTest(com.enonic.xp.repo.impl.node.AbstractNodeTest)

Example 23 with TaskId

use of com.enonic.xp.task.TaskId in project xp by enonic.

the class SubmitTaskHandlerTest method testExample.

@Test
void testExample() {
    final TaskId taskId = TaskId.from("7ca603c1-3b88-4009-8f30-46ddbcc4bb19");
    Mockito.when(this.taskService.submitTask(any(SubmitTaskParams.class))).thenReturn(taskId);
    runScript("/lib/xp/examples/task/submitTask.js");
}
Also used : TaskId(com.enonic.xp.task.TaskId) SubmitTaskParams(com.enonic.xp.task.SubmitTaskParams) Test(org.junit.jupiter.api.Test)

Example 24 with TaskId

use of com.enonic.xp.task.TaskId in project xp by enonic.

the class ExecuteFunctionHandlerTest method testExample.

@Test
public void testExample() {
    final TaskId taskId = TaskId.from("7ca603c1-3b88-4009-8f30-46ddbcc4bb19");
    Mockito.when(this.taskService.submitTask(any(RunnableTask.class), anyString())).thenReturn(taskId);
    runScript("/lib/xp/examples/task/executeFunction.js");
}
Also used : TaskId(com.enonic.xp.task.TaskId) RunnableTask(com.enonic.xp.task.RunnableTask) Test(org.junit.jupiter.api.Test)

Example 25 with TaskId

use of com.enonic.xp.task.TaskId in project xp by enonic.

the class SchedulableTaskImpl method run.

@Override
public void run() {
    try {
        final TaskId taskId = taskContext().callWith(() -> OsgiSupport.withService(TaskService.class, taskService -> taskService.submitTask(SubmitTaskParams.create().descriptorKey(job.getDescriptor()).data(job.getConfig()).build())));
        adminContext().runWith(() -> OsgiSupport.withService(NodeService.class, nodeService -> UpdateLastRunCommand.create().nodeService(nodeService).name(job.getName()).lastRun(Instant.now()).lastTaskId(taskId).build().execute()));
    } catch (Exception e) {
        LOG.warn("Error while running job [{}]", this.job.getName(), e);
    } catch (Throwable t) {
        LOG.error("Error while running job [{}], no further attempts will be made", this.job.getName(), t);
        throw t;
    }
}
Also used : SubmitTaskParams(com.enonic.xp.task.SubmitTaskParams) LoggerFactory(org.slf4j.LoggerFactory) UpdateLastRunCommand(com.enonic.xp.impl.scheduler.UpdateLastRunCommand) ScheduledJob(com.enonic.xp.scheduler.ScheduledJob) ContextAccessor(com.enonic.xp.context.ContextAccessor) NodeService(com.enonic.xp.node.NodeService) TaskService(com.enonic.xp.task.TaskService) ContextBuilder(com.enonic.xp.context.ContextBuilder) VerifiedUsernameAuthToken(com.enonic.xp.security.auth.VerifiedUsernameAuthToken) SecurityService(com.enonic.xp.security.SecurityService) PropertyTree(com.enonic.xp.data.PropertyTree) User(com.enonic.xp.security.User) Logger(org.slf4j.Logger) AuthenticationInfo(com.enonic.xp.security.auth.AuthenticationInfo) Instant(java.time.Instant) OsgiSupport(com.enonic.xp.core.internal.osgi.OsgiSupport) Serializable(java.io.Serializable) TaskId(com.enonic.xp.task.TaskId) PrincipalKey(com.enonic.xp.security.PrincipalKey) DescriptorKey(com.enonic.xp.page.DescriptorKey) ScheduledJobName(com.enonic.xp.scheduler.ScheduledJobName) RoleKeys(com.enonic.xp.security.RoleKeys) Preconditions(com.google.common.base.Preconditions) Context(com.enonic.xp.context.Context) ScheduleCalendar(com.enonic.xp.scheduler.ScheduleCalendar) TaskId(com.enonic.xp.task.TaskId) TaskService(com.enonic.xp.task.TaskService) NodeService(com.enonic.xp.node.NodeService)

Aggregations

TaskId (com.enonic.xp.task.TaskId)26 Test (org.junit.jupiter.api.Test)19 DescriptorKey (com.enonic.xp.page.DescriptorKey)7 TaskInfo (com.enonic.xp.task.TaskInfo)7 PropertyTree (com.enonic.xp.data.PropertyTree)6 DescribedTask (com.enonic.xp.impl.task.distributed.DescribedTask)5 TasksReporterCallable (com.enonic.xp.impl.task.distributed.TasksReporterCallable)4 TaskManager (com.enonic.xp.impl.task.distributed.TaskManager)3 User (com.enonic.xp.security.User)3 RunnableTask (com.enonic.xp.task.RunnableTask)3 SubmitTaskParams (com.enonic.xp.task.SubmitTaskParams)3 Member (com.hazelcast.core.Member)3 Instant (java.time.Instant)3 Set (java.util.Set)3 Assertions.assertEquals (org.junit.jupiter.api.Assertions.assertEquals)3 Assertions.assertNull (org.junit.jupiter.api.Assertions.assertNull)3 Assertions.assertTrue (org.junit.jupiter.api.Assertions.assertTrue)3 ExtendWith (org.junit.jupiter.api.extension.ExtendWith)3 ApplicationKey (com.enonic.xp.app.ApplicationKey)2 Context (com.enonic.xp.context.Context)2