【功能修复】多租户下定时任务结果处理都为失败问题
							parent
							
								
									85020318db
								
							
						
					
					
						commit
						538b5f5d3c
					
				|  | @ -42,15 +42,16 @@ public class TenantJobAspect { | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         // 逐个租户,执行 Job
 |         // 逐个租户,执行 Job
 | ||||||
|         Map<Long, String> results = new ConcurrentHashMap<>(); |         Map<Long, String> success = new ConcurrentHashMap<>(); | ||||||
|  |         Map<Long, String> fail = new ConcurrentHashMap<>(); | ||||||
|         tenantIds.parallelStream().forEach(tenantId -> { |         tenantIds.parallelStream().forEach(tenantId -> { | ||||||
|             // TODO 芋艿:先通过 parallel 实现并行;1)多个租户,是一条执行日志;2)异常的情况
 |             // TODO 芋艿:先通过 parallel 实现并行;1)多个租户,是一条执行日志;2)异常的情况
 | ||||||
|             TenantUtils.execute(tenantId, () -> { |             TenantUtils.execute(tenantId, () -> { | ||||||
|                 try { |                 try { | ||||||
|                     Object result = joinPoint.proceed(); |                     Object result = joinPoint.proceed(); | ||||||
|                     results.put(tenantId, StrUtil.toStringOrNull(result)); |                     success.put(tenantId, StrUtil.toStringOrNull(result)); | ||||||
|                 } catch (Throwable e) { |                 } catch (Throwable e) { | ||||||
|                     results.put(tenantId, ExceptionUtil.getRootCauseMessage(e)); |                     fail.put(tenantId, ExceptionUtil.getRootCauseMessage(e)); | ||||||
|                     // 打印异常
 |                     // 打印异常
 | ||||||
|                     XxlJobHelper.log(StrUtil.format("[多租户({}) 执行任务({}),发生异常:{}]", |                     XxlJobHelper.log(StrUtil.format("[多租户({}) 执行任务({}),发生异常:{}]", | ||||||
|                             tenantId, joinPoint.getSignature(), ExceptionUtils.getStackTrace(e))); |                             tenantId, joinPoint.getSignature(), ExceptionUtils.getStackTrace(e))); | ||||||
|  | @ -58,8 +59,11 @@ public class TenantJobAspect { | ||||||
|             }); |             }); | ||||||
|         }); |         }); | ||||||
|         // 如果 results 非空,说明发生了异常,标记 XXL-Job 执行失败
 |         // 如果 results 非空,说明发生了异常,标记 XXL-Job 执行失败
 | ||||||
|         if (CollUtil.isNotEmpty(results)) { |         if (CollUtil.isNotEmpty(fail)) { | ||||||
|             XxlJobHelper.handleFail(JsonUtils.toJsonString(results)); |             XxlJobHelper.handleFail(JsonUtils.toJsonString(fail)); | ||||||
|  |         } | ||||||
|  |         else { | ||||||
|  |             XxlJobHelper.handleSuccess(JsonUtils.toJsonString(success)); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Lcp
						Lcp