Search in sources :

Example 1 with Job

use of com.albedo.java.modules.quartz.domain.Job in project albedo by somowhere.

the class JobResourceIntTest method createJob.

@Test
@Transactional(rollbackFor = Exception.class)
public void createJob() throws Exception {
    int databaseSizeBeforeCreate = jobService.list().size();
    // Create the Job
    restJobMockMvc.perform(post(DEFAULT_API_URL).param(PageModel.F_DESC, Job.F_SQL_CREATED_DATE).contentType(TestUtil.APPLICATION_JSON_UTF8).content(TestUtil.convertObjectToJsonBytes(jobDto))).andExpect(status().isOk());
    // Validate the Job in the database
    List<Job> jobList = jobService.list(Wrappers.<Job>query().lambda().orderByAsc(Job::getCreatedDate));
    assertThat(jobList).hasSize(databaseSizeBeforeCreate + 1);
    Job testJob = jobList.get(jobList.size() - 1);
    assertThat(testJob.getName()).isEqualTo(DEFAULT_NAME);
    assertThat(testJob.getGroup()).isEqualTo(DEFAULT_GROUP);
    assertThat(testJob.getInvokeTarget()).isEqualTo(DEFAULT_INVOKETARGET);
    assertThat(testJob.getCronExpression()).isEqualTo(DEFAULT_CRONEXPRESSION);
    assertThat(testJob.getMisfirePolicy()).isEqualTo(DEFAULT_MISFIREPOLICY);
    assertThat(testJob.getConcurrent()).isEqualTo(DEFAULT_CONCURRENT);
    assertThat(testJob.getStatus()).isEqualTo(DEFAULT_AVAILABLE);
    assertThat(testJob.getDescription()).isEqualTo(DEFAULT_DESCRIPTION);
}
Also used : Job(com.albedo.java.modules.quartz.domain.Job) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest) Transactional(org.springframework.transaction.annotation.Transactional)

Example 2 with Job

use of com.albedo.java.modules.quartz.domain.Job in project albedo by somowhere.

the class JobResourceIntTest method equalsVerifier.

@Test
@Transactional(rollbackFor = Exception.class)
public void equalsVerifier() throws Exception {
    TestUtil.equalsVerifier(Job.class);
    Job job1 = new Job();
    job1.setId(44l);
    Job job2 = new Job();
    job2.setId(job1.getId());
    assertThat(job1).isEqualTo(job2);
    job2.setId(55l);
    assertThat(job1).isNotEqualTo(job2);
    job1.setId(null);
    assertThat(job1).isNotEqualTo(job2);
}
Also used : Job(com.albedo.java.modules.quartz.domain.Job) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest) Transactional(org.springframework.transaction.annotation.Transactional)

Example 3 with Job

use of com.albedo.java.modules.quartz.domain.Job in project albedo by somowhere.

the class ScheduleReceiver method refresh.

/**
 * 项目启动时,初始化定时器 主要是防止手动修改数据库导致未同步到定时任务处理(注:不能手动修改数据库ID和任务组名,否则会导致脏数据)
 */
public void refresh() throws TaskException, SchedulerException {
    scheduler.clear();
    List<Tenant> tenants = tenantRepository.selectList(null);
    for (Tenant tenant : tenants) {
        ContextUtil.setTenant(tenant.getCode());
        List<Job> jobList = jobRepository.selectList(null);
        for (Job job : jobList) {
            updateSchedulerJob(job, job.getGroup());
        }
    }
}
Also used : Tenant(com.albedo.java.modules.tenant.domain.Tenant) Job(com.albedo.java.modules.quartz.domain.Job)

Example 4 with Job

use of com.albedo.java.modules.quartz.domain.Job in project albedo by somowhere.

the class JobServiceImpl method saveOrUpdate.

/**
 * 新增任务
 *
 * @param job 调度信息 调度信息
 */
@Override
@Transactional(rollbackFor = Exception.class)
public boolean saveOrUpdate(Job job) {
    ArgumentAssert.isTrue(checkCronExpressionIsValid(job.getCronExpression()), "cronExpression 不合法");
    try {
        if (job.getId() == null) {
            job.setStatus(JobStatus.PAUSE);
            int rows = repository.insert(job);
            if (rows > 0) {
                RedisUtil.sendScheduleChannelMessage(ScheduleVo.createDataAdd(JSONUtil.toJsonStr(job)));
            }
        } else {
            Job temp = repository.selectById(job.getId());
            int rows = repository.updateById(job);
            if (rows > 0) {
                updateSchedulerJob(job, temp.getGroup());
            }
        }
        return true;
    } catch (Exception e) {
        throw new BizException(e);
    }
}
Also used : BizException(com.albedo.java.common.core.exception.BizException) Job(com.albedo.java.modules.quartz.domain.Job) BizException(com.albedo.java.common.core.exception.BizException) Transactional(org.springframework.transaction.annotation.Transactional)

Example 5 with Job

use of com.albedo.java.modules.quartz.domain.Job in project albedo by somowhere.

the class JobResourceIntTest method updateJob.

@Test
@Transactional(rollbackFor = Exception.class)
public void updateJob() throws Exception {
    // Initialize the database
    jobService.saveOrUpdate(jobDto);
    int databaseSizeBeforeUpdate = jobService.list().size();
    // Update the job
    Job updatedJob = jobService.getById(jobDto.getId());
    // Disconnect from session so that the updates on updatedJob are not directly
    // saved in db
    ClassUtil.updateObj(updatedJob, Lists.newArrayList(Job.F_NAME, Job.F_GROUP, Job.F_INVOKETARGET, Job.F_CRONEXPRESSION, Job.F_MISFIREPOLICY, Job.F_CONCURRENT, Job.F_AVAILABLE, Job.F_DESCRIPTION), UPDATED_NAME, UPDATED_GROUP, UPDATED_INVOKETARGET, UPDATED_CRONEXPRESSION, UPDATED_MISFIREPOLICY, UPDATED_CONCURRENT, UPDATED_AVAILABLE, UPDATED_DESCRIPTION);
    JobDto jobVo = jobService.copyBeanToDto(updatedJob);
    restJobMockMvc.perform(post(DEFAULT_API_URL).contentType(TestUtil.APPLICATION_JSON_UTF8).content(TestUtil.convertObjectToJsonBytes(jobVo))).andExpect(status().isOk());
    // Validate the Job in the database
    List<Job> jobList = jobService.list();
    assertThat(jobList).hasSize(databaseSizeBeforeUpdate);
    Job testJob = jobList.stream().filter(item -> jobDto.getId().equals(item.getId())).findAny().get();
    assertThat(testJob.getName()).isEqualTo(UPDATED_NAME);
    assertThat(testJob.getGroup()).isEqualTo(UPDATED_GROUP);
    assertThat(testJob.getInvokeTarget()).isEqualTo(UPDATED_INVOKETARGET);
    assertThat(testJob.getCronExpression()).isEqualTo(UPDATED_CRONEXPRESSION);
    assertThat(testJob.getMisfirePolicy()).isEqualTo(UPDATED_MISFIREPOLICY);
    assertThat(testJob.getConcurrent()).isEqualTo(UPDATED_CONCURRENT);
    assertThat(testJob.getStatus()).isEqualTo(UPDATED_AVAILABLE);
    assertThat(testJob.getDescription()).isEqualTo(UPDATED_DESCRIPTION);
}
Also used : JobDto(com.albedo.java.modules.quartz.domain.dto.JobDto) Job(com.albedo.java.modules.quartz.domain.Job) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

Job (com.albedo.java.modules.quartz.domain.Job)9 Transactional (org.springframework.transaction.annotation.Transactional)5 Test (org.junit.jupiter.api.Test)3 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)3 BizException (com.albedo.java.common.core.exception.BizException)1 JobDto (com.albedo.java.modules.quartz.domain.dto.JobDto)1 Tenant (com.albedo.java.modules.tenant.domain.Tenant)1 JobExecutionException (org.quartz.JobExecutionException)1