refactor(项目管理): 定时任务

This commit is contained in:
WangXu10 2024-03-20 11:33:12 +08:00 committed by Craftsman
parent 411982971a
commit cf3c49de16
3 changed files with 12 additions and 4 deletions

View File

@ -8,6 +8,7 @@ import io.metersphere.project.domain.ProjectExample;
import io.metersphere.project.mapper.ProjectApplicationMapper; import io.metersphere.project.mapper.ProjectApplicationMapper;
import io.metersphere.project.mapper.ProjectMapper; import io.metersphere.project.mapper.ProjectMapper;
import io.metersphere.sdk.constants.ProjectApplicationType; import io.metersphere.sdk.constants.ProjectApplicationType;
import io.metersphere.system.mapper.BaseProjectMapper;
import io.metersphere.system.service.BaseCleanUpReport; import io.metersphere.system.service.BaseCleanUpReport;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
@ -33,6 +34,8 @@ public class CleanUpReportJob {
@Autowired @Autowired
private ApplicationContext applicationContext; private ApplicationContext applicationContext;
@Resource
private BaseProjectMapper baseProjectMapper;
/** /**
* 清理报告定时任务所有项目共用一个 * 清理报告定时任务所有项目共用一个
@ -44,13 +47,12 @@ public class CleanUpReportJob {
long pages = Double.valueOf(Math.ceil(count / 100.0)).longValue(); long pages = Double.valueOf(Math.ceil(count / 100.0)).longValue();
for (int i = 1; i <= pages; i++) { for (int i = 0; i < pages; i++) {
int start = i * 100;
Thread.startVirtualThread(new Runnable() { Thread.startVirtualThread(new Runnable() {
@Override @Override
public void run() { public void run() {
ProjectExample example = new ProjectExample(); List<Project> projects = baseProjectMapper.selectProjectByLimit(start,100);
example.createCriteria().andDeletedEqualTo(false);
List<Project> projects = projectMapper.selectByExample(example);
projects.forEach(project -> { projects.forEach(project -> {
ProjectApplicationExample applicationExample = new ProjectApplicationExample(); ProjectApplicationExample applicationExample = new ProjectApplicationExample();
//test_plan //test_plan

View File

@ -29,4 +29,6 @@ public interface BaseProjectMapper {
* @return 组织下的所有项目 * @return 组织下的所有项目
*/ */
List<OptionDTO> getProjectOptionsByOrgId(@Param("orgId") String orgId); List<OptionDTO> getProjectOptionsByOrgId(@Param("orgId") String orgId);
List<Project> selectProjectByLimit(@Param("start") int start, @Param("limit") int limit);
} }

View File

@ -42,4 +42,8 @@
from project from project
order by create_time desc order by create_time desc
</select> </select>
<select id="selectProjectByLimit" resultType="io.metersphere.project.domain.Project">
SELECT id FROM project WHERE deleted = 0 ORDER BY create_time LIMIT #{start}, #{limit}
</select>
</mapper> </mapper>