feat(1.5.0-beta1): 定时清理日志中加入对 workflowBatch 的清理逻辑
This commit is contained in:
parent
50003098ec
commit
cf91d88ac2
@ -12,6 +12,7 @@ import com.aizuda.snailjob.server.job.task.support.JobTaskConverter;
|
|||||||
import com.aizuda.snailjob.template.datasource.persistence.mapper.JobLogMessageMapper;
|
import com.aizuda.snailjob.template.datasource.persistence.mapper.JobLogMessageMapper;
|
||||||
import com.aizuda.snailjob.template.datasource.persistence.mapper.JobTaskBatchMapper;
|
import com.aizuda.snailjob.template.datasource.persistence.mapper.JobTaskBatchMapper;
|
||||||
import com.aizuda.snailjob.template.datasource.persistence.mapper.JobTaskMapper;
|
import com.aizuda.snailjob.template.datasource.persistence.mapper.JobTaskMapper;
|
||||||
|
import com.aizuda.snailjob.template.datasource.persistence.mapper.WorkflowTaskBatchMapper;
|
||||||
import com.aizuda.snailjob.template.datasource.persistence.po.JobLogMessage;
|
import com.aizuda.snailjob.template.datasource.persistence.po.JobLogMessage;
|
||||||
import com.aizuda.snailjob.template.datasource.persistence.po.JobTask;
|
import com.aizuda.snailjob.template.datasource.persistence.po.JobTask;
|
||||||
import com.aizuda.snailjob.template.datasource.persistence.po.JobTaskBatch;
|
import com.aizuda.snailjob.template.datasource.persistence.po.JobTaskBatch;
|
||||||
@ -48,6 +49,7 @@ public class JobClearLogSchedule extends AbstractSchedule implements Lifecycle {
|
|||||||
private final JobTaskBatchMapper jobTaskBatchMapper;
|
private final JobTaskBatchMapper jobTaskBatchMapper;
|
||||||
private final JobTaskMapper jobTaskMapper;
|
private final JobTaskMapper jobTaskMapper;
|
||||||
private final JobLogMessageMapper jobLogMessageMapper;
|
private final JobLogMessageMapper jobLogMessageMapper;
|
||||||
|
private final WorkflowTaskBatchMapper workflowTaskBatchMapper;
|
||||||
private final TransactionTemplate transactionTemplate;
|
private final TransactionTemplate transactionTemplate;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -120,6 +122,7 @@ public class JobClearLogSchedule extends AbstractSchedule implements Lifecycle {
|
|||||||
|
|
||||||
Set<Long> jobTaskListIds = new HashSet<>();
|
Set<Long> jobTaskListIds = new HashSet<>();
|
||||||
Set<Long> jobLogMessageListIds = new HashSet<>();
|
Set<Long> jobLogMessageListIds = new HashSet<>();
|
||||||
|
Set<Long> workflowBatchIds = new HashSet<>();
|
||||||
for (List<Long> ids : idsPartition) {
|
for (List<Long> ids : idsPartition) {
|
||||||
|
|
||||||
// Waiting for deletion JobTaskList
|
// Waiting for deletion JobTaskList
|
||||||
@ -138,6 +141,15 @@ public class JobClearLogSchedule extends AbstractSchedule implements Lifecycle {
|
|||||||
Set<Long> jobLogMessage = jobLogMessageList.stream().map(JobLogMessage::getId).collect(Collectors.toSet());
|
Set<Long> jobLogMessage = jobLogMessageList.stream().map(JobLogMessage::getId).collect(Collectors.toSet());
|
||||||
jobLogMessageListIds.addAll(jobLogMessage);
|
jobLogMessageListIds.addAll(jobLogMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 先找出对应的 workflowTaskBatchId
|
||||||
|
List<JobTaskBatch> jobTaskBatchList = jobTaskBatchMapper.selectList(new LambdaQueryWrapper<JobTaskBatch>().
|
||||||
|
select(JobTaskBatch::getWorkflowTaskBatchId)
|
||||||
|
.in(JobTaskBatch::getId, ids));
|
||||||
|
if (!CollectionUtils.isEmpty(jobTaskBatchList)) {
|
||||||
|
Set<Long> workflowTaskBatchId = jobTaskBatchList.stream().map(JobTaskBatch::getWorkflowTaskBatchId).collect(Collectors.toSet());
|
||||||
|
workflowBatchIds.addAll(workflowTaskBatchId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
|
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
|
||||||
@ -151,6 +163,9 @@ public class JobClearLogSchedule extends AbstractSchedule implements Lifecycle {
|
|||||||
if (!CollectionUtils.isEmpty(jobLogMessageListIds)) {
|
if (!CollectionUtils.isEmpty(jobLogMessageListIds)) {
|
||||||
Lists.partition(jobLogMessageListIds.stream().toList(), 500).forEach(jobLogMessageMapper::deleteByIds);
|
Lists.partition(jobLogMessageListIds.stream().toList(), 500).forEach(jobLogMessageMapper::deleteByIds);
|
||||||
}
|
}
|
||||||
|
if (!CollectionUtils.isEmpty(workflowBatchIds)) {
|
||||||
|
Lists.partition(workflowBatchIds.stream().toList(), 500).forEach(workflowTaskBatchMapper::deleteByIds);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user