From 1f470afd22a6be31d48ff156cd8b712a7005f8c8 Mon Sep 17 00:00:00 2001 From: o2sword <171715986@qq.com> Date: Wed, 21 Jul 2021 17:44:16 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=90=E5=88=B6=E5=88=B7=E6=96=B0=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E7=9A=84=E6=97=B6=E9=97=B4=EF=BC=8C=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E4=B8=8A=E7=8F=AD=E6=97=B6=E9=97=B4=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cms/assemble/control/ThisApplication.java | 4 ++-- .../ActionRefreshAllDocumentPermission.java | 2 +- .../service/DocumentPersistService.java | 18 ++++++++++++++---- .../Timertask_RefreshAllDocumentReviews.java | 2 +- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/ThisApplication.java b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/ThisApplication.java index 92bd197b19..1fd2ce104f 100644 --- a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/ThisApplication.java +++ b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/ThisApplication.java @@ -65,8 +65,8 @@ public class ThisApplication { context.schedule(Timertask_LogRecordCheckTask.class, "0 0 2 * * ?"); context.schedule(Timertask_BatchOperationTask.class, "0 */5 * * * ?"); - // 每天凌晨2点,计算所有的文档的权限信息 - context.schedule(Timertask_RefreshAllDocumentReviews.class, "0 0 2 * * ?"); + // 每天凌晨1点,计算所有的文档的权限信息 + context.schedule(Timertask_RefreshAllDocumentReviews.class, "0 0 1 * * ?"); //集群下多台会一起运行,Timertask_BatchOperationTask运行即可 //context.scheduleLocal(Timertask_CheckDocumentReviewStatus.class, 1200); context.scheduleLocal(Timertask_InitOperationRunning.class, 150); diff --git a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/permission/ActionRefreshAllDocumentPermission.java b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/permission/ActionRefreshAllDocumentPermission.java index 1937d879fc..4beb05c854 100644 --- a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/permission/ActionRefreshAllDocumentPermission.java +++ b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/permission/ActionRefreshAllDocumentPermission.java @@ -28,7 +28,7 @@ public class ActionRefreshAllDocumentPermission extends BaseAction { try { if(lock.tryLock()) { logger.info("开始更新所有文档权限........"); - documentPersistService.refreshAllDocumentPermission(); + documentPersistService.refreshAllDocumentPermission(true); logger.info("完成更新所有文档权限........"); wo.setValue("权限处理完成!"); lock.unlock(); diff --git a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/service/DocumentPersistService.java b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/service/DocumentPersistService.java index 8de3f12d57..6f6927935e 100644 --- a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/service/DocumentPersistService.java +++ b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/service/DocumentPersistService.java @@ -8,6 +8,7 @@ import com.x.base.core.entity.dataitem.ItemCategory; import com.x.base.core.project.cache.CacheManager; import com.x.base.core.project.logger.Logger; import com.x.base.core.project.logger.LoggerFactory; +import com.x.base.core.project.tools.DateTools; import com.x.base.core.project.tools.ListTools; import com.x.cms.assemble.control.DocumentDataHelper; import com.x.cms.assemble.control.jaxrs.document.ActionPersistBatchModifyData.WiDataChange; @@ -20,12 +21,14 @@ import com.x.cms.core.entity.content.Data; import com.x.query.core.entity.Item; import org.apache.commons.collections4.list.TreeList; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.time.DateUtils; import javax.persistence.EntityManager; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; +import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.concurrent.CompletableFuture; @@ -341,7 +344,7 @@ public class DocumentPersistService { /** * 重新计算所有的文档的权限和review信息 */ - public void refreshAllDocumentPermission() throws Exception { + public void refreshAllDocumentPermission(boolean flag) throws Exception { try { if(lock.tryLock()) { AppInfoServiceAdv appInfoService = new AppInfoServiceAdv(); @@ -354,8 +357,8 @@ public class DocumentPersistService { logger.info("刷新应用{}的数据共{}条",appId,documentIds.size()); if (ListTools.isNotEmpty(documentIds)) { int count = 0; - for (List partDocIds : ListTools.batch(documentIds, 10)){ - count = count + 10; + for (List partDocIds : ListTools.batch(documentIds, 4)){ + count = count + 4; List> futures = new TreeList<>(); for (String documentId : partDocIds) { CompletableFuture future = CompletableFuture.runAsync(() -> { @@ -372,6 +375,13 @@ public class DocumentPersistService { }); futures.add(future); } + if(!flag){ + Calendar cal = DateUtils.toCalendar(new Date()); + if(cal.get(Calendar.HOUR_OF_DAY)>6){ + lock.unlock(); + return; + } + } for (CompletableFuture future : futures) { try { future.get(200, TimeUnit.SECONDS); @@ -380,7 +390,7 @@ public class DocumentPersistService { } } futures.clear(); - if(count > 99 && count % 100 == 0){ + if(flag && count > 199 && count % 200 == 0){ logger.info("应用文档权限已刷新{}个",count); } } diff --git a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/timertask/Timertask_RefreshAllDocumentReviews.java b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/timertask/Timertask_RefreshAllDocumentReviews.java index 7dddcb2501..17c3f43555 100644 --- a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/timertask/Timertask_RefreshAllDocumentReviews.java +++ b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/timertask/Timertask_RefreshAllDocumentReviews.java @@ -17,7 +17,7 @@ public class Timertask_RefreshAllDocumentReviews extends AbstractJob { @Override public void schedule(JobExecutionContext jobExecutionContext) throws Exception { DocumentPersistService documentPersistService = new DocumentPersistService(); - documentPersistService.refreshAllDocumentPermission(); + documentPersistService.refreshAllDocumentPermission(false); } } \ No newline at end of file -- GitLab