1、job模块细化包分类 新增openapi包,类位置调整
2、百度平台翻译api salt盐值抽出成配置文件 3、编写定时检查第三方API状态是否正常,目前以经实现2个 4、新增定时检查API的定时任务
This commit is contained in:
parent
827e8c521f
commit
15690d4d02
|
|
@ -0,0 +1,23 @@
|
|||
package com.xjs.business.api;
|
||||
|
||||
import com.ruoyi.common.core.constant.ServiceNameConstants;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.xjs.business.api.factory.RemoteCommonFactory;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
||||
/**
|
||||
* API模块通用feign
|
||||
* @author xiejs
|
||||
* @since 2022-02-21
|
||||
*/
|
||||
@FeignClient(contextId = "remoteCommonFeign",
|
||||
value = ServiceNameConstants.BUSINESS_OPENAPI_SERVICE,
|
||||
fallbackFactory = RemoteCommonFactory.class)
|
||||
public interface RemoteCommonFeign {
|
||||
|
||||
|
||||
@GetMapping("/common/checkApiStatus")
|
||||
R CheckApiStatusForRPC();
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
package com.xjs.business.api.factory;
|
||||
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.xjs.business.api.RemoteCommonFeign;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.cloud.openfeign.FallbackFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* API模块通用 降级
|
||||
* @author xiejs
|
||||
* @since 2022-02-21
|
||||
*/
|
||||
@Component
|
||||
@Log4j2
|
||||
public class RemoteCommonFactory implements FallbackFactory<RemoteCommonFeign> {
|
||||
|
||||
@Override
|
||||
public RemoteCommonFeign create(Throwable cause) {
|
||||
return new RemoteCommonFeign() {
|
||||
@Override
|
||||
public R CheckApiStatusForRPC() {
|
||||
log.error("API模块通用 降级"+cause.getMessage());
|
||||
return R.fail("API模块通用 降级");
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
package com.xjs.job.task.openapi;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.xjs.business.api.RemoteCommonFeign;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
|
||||
/**
|
||||
* 检查api状态任务定时任务
|
||||
* @author xiejs
|
||||
* @since 2022-02-21
|
||||
*/
|
||||
@Component("CheckApiStatusTask")
|
||||
@Log4j2
|
||||
public class CheckApiStatusTask {
|
||||
|
||||
@Resource
|
||||
private RemoteCommonFeign remoteCommonFeign;
|
||||
|
||||
public void checkApiStatus() {
|
||||
log.info("---------------检查api状态定时任务Start-------------------");
|
||||
LocalDateTime localDateTime1 = DateUtil.date().toLocalDateTime();
|
||||
|
||||
R r = remoteCommonFeign.CheckApiStatusForRPC();
|
||||
|
||||
log.info("检查api状态定时任务结果:code={},msg={}",r.getCode(),r.getMsg());
|
||||
|
||||
LocalDateTime localDateTime2 = DateUtil.date().toLocalDateTime();
|
||||
long between = ChronoUnit.MILLIS.between(localDateTime1, localDateTime2);
|
||||
log.info("检查api状态定时任务Job耗费时间:{}ms", between);
|
||||
log.info("---------------检查api状态定时任务end---------------------");
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.xjs.job.task;
|
||||
package com.xjs.job.task.openapi;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.xjs.job.task;
|
||||
package com.xjs.job.task.openapi;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.xjs.job.task;
|
||||
package com.xjs.job.task.openapi;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateUnit;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.xjs.job.task;
|
||||
package com.xjs.job.task.openapi;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
|
|
@ -24,5 +24,10 @@ public class BaiduProperties {
|
|||
*/
|
||||
private String key;
|
||||
|
||||
/**
|
||||
* 盐值
|
||||
*/
|
||||
private String salt;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
package com.xjs.common.controller;
|
||||
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.xjs.common.task.CheckApiStatusTask;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* API模块通用controller
|
||||
* @author xiejs
|
||||
* @since 2022-02-21
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("common")
|
||||
@Api(tags = "业务模块-通用")
|
||||
@Log4j2
|
||||
public class ApiCommonController {
|
||||
|
||||
@Autowired
|
||||
private CheckApiStatusTask checkApiStatusTask;
|
||||
|
||||
@GetMapping("checkApiStatus")
|
||||
@ApiOperation("检查api状态")
|
||||
public R CheckApiStatusForRPC() {
|
||||
checkApiStatusTask.checkApiStatus();
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,166 @@
|
|||
package com.xjs.common.task;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ReflectUtil;
|
||||
import cn.hutool.crypto.SecureUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.xjs.annotation.ApiLog;
|
||||
import com.xjs.business.warning.RemoteWarningCRUDFeign;
|
||||
import com.xjs.business.warning.domain.ApiRecord;
|
||||
import com.xjs.common.client.api.alapi.AlapiJokeAllFeignClient;
|
||||
import com.xjs.common.client.api.baidu.BaiduFeignClient;
|
||||
import com.xjs.properties.AlApiProperties;
|
||||
import com.xjs.properties.BaiduProperties;
|
||||
import com.xjs.translation.domain.qo.translation.BaiDuTranslationQo;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.List;
|
||||
|
||||
import static com.xjs.consts.ApiConst.DEMOTE_ERROR;
|
||||
import static com.xjs.consts.ReqConst.ERROR;
|
||||
|
||||
/**
|
||||
* 检查api状态任务
|
||||
*
|
||||
* @author xiejs
|
||||
* @since 2022-02-21
|
||||
*/
|
||||
@Component
|
||||
@Log4j2
|
||||
public class CheckApiStatusTask {
|
||||
/**
|
||||
* 需要输入的文本内容
|
||||
*/
|
||||
public static final String content = "test";
|
||||
|
||||
@Autowired
|
||||
private RemoteWarningCRUDFeign remoteWarningCRUDFeign;
|
||||
|
||||
|
||||
@Autowired
|
||||
private AlApiProperties alApiProperties;
|
||||
@Autowired
|
||||
private BaiduProperties baiduProperties;
|
||||
|
||||
@Resource
|
||||
private AlapiJokeAllFeignClient alapiJokeAllFeignClient;
|
||||
@Resource
|
||||
private BaiduFeignClient baiduFeignClient;
|
||||
|
||||
|
||||
/**
|
||||
* 检查api状态 <br>
|
||||
* 后续实现新API需要在这新增检查项
|
||||
*/
|
||||
public void checkApiStatus() {
|
||||
this.checkAlapiJoke();
|
||||
|
||||
this.checkBaiduTranslation();
|
||||
|
||||
// todo 还剩20多个api检查没写
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查alapi平台笑话大全API
|
||||
*/
|
||||
private void checkAlapiJoke() {
|
||||
JSONObject jsonObject = alapiJokeAllFeignClient.alapiJokeAllApi(alApiProperties.getToken());
|
||||
|
||||
if (!jsonObject.containsKey(DEMOTE_ERROR)) {
|
||||
return;
|
||||
}
|
||||
|
||||
String[] info = this.getAnnotationInfo(AlapiJokeAllFeignClient.class);
|
||||
|
||||
this.selectAndUpdate(info);
|
||||
|
||||
log.error("检查发现alapi平台笑话大全API异常");
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查百度平台翻译API
|
||||
*/
|
||||
private void checkBaiduTranslation() {
|
||||
//构建请求参数
|
||||
String appId = baiduProperties.getAppId();
|
||||
String key = baiduProperties.getKey();
|
||||
BaiDuTranslationQo baiDuTranslationQo = new BaiDuTranslationQo();
|
||||
baiDuTranslationQo.setAppid(appId);
|
||||
//生成签名(appid+q+salt+密钥的MD5值)
|
||||
String append = appId + content + baiduProperties.getSalt() + key;
|
||||
String sign = SecureUtil.md5(append);
|
||||
baiDuTranslationQo.setSign(sign);
|
||||
baiDuTranslationQo.setQ(content);
|
||||
baiDuTranslationQo.setSalt(baiduProperties.getSalt());
|
||||
|
||||
JSONObject jsonObject = baiduFeignClient.translationApi(baiDuTranslationQo);
|
||||
if (!jsonObject.containsKey(DEMOTE_ERROR)) {
|
||||
return;
|
||||
}
|
||||
|
||||
String[] info = this.getAnnotationInfo(BaiduFeignClient.class);
|
||||
|
||||
this.selectAndUpdate(info);
|
||||
|
||||
log.error("检查发现百度平台翻译API异常");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 反射获取注解信息
|
||||
*
|
||||
* @param cls 反射类
|
||||
* @return 注解信息 [0]=name [1]=url
|
||||
*/
|
||||
private String[] getAnnotationInfo(Class<?> cls) {
|
||||
|
||||
Method[] publicMethods = ReflectUtil.getPublicMethods(cls);
|
||||
|
||||
if (publicMethods.length > 0) {
|
||||
for (Method method : publicMethods) {
|
||||
ApiLog annotation = method.getAnnotation(ApiLog.class);
|
||||
if (annotation != null) {
|
||||
String name = annotation.name();
|
||||
String url = annotation.url();
|
||||
|
||||
return new String[]{name, url};
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询和修改状态
|
||||
*
|
||||
* @param info 注解信息 [0]=name [1]=url
|
||||
*/
|
||||
private void selectAndUpdate(String[] info) {
|
||||
if (info != null) {
|
||||
ApiRecord apiRecord = new ApiRecord();
|
||||
apiRecord.setApiName(info[0]);
|
||||
apiRecord.setApiUrl(info[1]);
|
||||
R<List<ApiRecord>> listR = remoteWarningCRUDFeign.selectApiRecordListForRPC(apiRecord);
|
||||
if (listR.getCode() == R.SUCCESS) {
|
||||
List<ApiRecord> data = listR.getData();
|
||||
if (CollUtil.isNotEmpty(data)) {
|
||||
ApiRecord haveApiRecord = data.get(0);
|
||||
haveApiRecord.setStatus(ERROR);
|
||||
//置为空让mp自动填充
|
||||
haveApiRecord.setUpdateTime(null);
|
||||
remoteWarningCRUDFeign.updateApiRecordForRPC(haveApiRecord);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -39,7 +39,7 @@ public class BaiDuTranslationQo {
|
|||
/**
|
||||
* 盐(随机数)
|
||||
*/
|
||||
private String salt = "xjsisyourfatter";
|
||||
private String salt;
|
||||
|
||||
/**
|
||||
* 签名(appid+query+salt+key的MD5值)
|
||||
|
|
|
|||
|
|
@ -38,7 +38,8 @@ public class BaiDuTranslationFactory implements TranslationFactory {
|
|||
baiDuTranslationQo.setAppid(appId);
|
||||
String key = baiduProperties.getKey();
|
||||
//生成签名(appid+q+salt+密钥的MD5值)
|
||||
String append = appId + translationQo.getQ() + baiDuTranslationQo.getSalt() + key;
|
||||
String append = appId + translationQo.getQ() + baiduProperties.getSalt() + key;
|
||||
baiDuTranslationQo.setSalt(baiduProperties.getSalt());
|
||||
String sign = SecureUtil.md5(append);
|
||||
baiDuTranslationQo.setSign(sign);
|
||||
baiDuTranslationQo.setQ(translationQo.getQ());
|
||||
|
|
|
|||
|
|
@ -548,8 +548,8 @@ CREATE TABLE `sys_job_log` (
|
|||
INSERT INTO `sys_job_log` VALUES (1, '文案RPC调用任务', 'DEFAULT', 'CopyWritingTask', '文案RPC调用任务 总共耗时:3毫秒', '1', 'org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named \'CopyWritingTask\' available\r\n at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:863)\r\n at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1344)\r\n at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:309)\r\n at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:283)\r\n at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)\r\n at com.ruoyi.common.core.utils.SpringUtils.getBean(SpringUtils.java:38)\r\n at com.ruoyi.job.util.JobInvokeUtil.invokeMethod(JobInvokeUtil.java:32)\r\n at com.ruoyi.job.util.QuartzDisallowConcurrentExecution.doExecute(QuartzDisallowConcurrentExecution.java:20)\r\n at com.ruoyi.job.util.AbstractQuartzJob.execute(AbstractQuartzJob.java:42)\r\n at org.quartz.core.JobRunShell.run(JobRunShell.java:202)\r\n at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)\r\n', '2021-12-27 23:59:57');
|
||||
INSERT INTO `sys_job_log` VALUES (2, '文案RPC调用任务', 'DEFAULT', 'CopyWritingTask', '文案RPC调用任务 总共耗时:4毫秒', '1', 'org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named \'CopyWritingTask\' available\r\n at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:863)\r\n at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1344)\r\n at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:309)\r\n at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:283)\r\n at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)\r\n at com.ruoyi.common.core.utils.SpringUtils.getBean(SpringUtils.java:38)\r\n at com.ruoyi.job.util.JobInvokeUtil.invokeMethod(JobInvokeUtil.java:32)\r\n at com.ruoyi.job.util.QuartzDisallowConcurrentExecution.doExecute(QuartzDisallowConcurrentExecution.java:20)\r\n at com.ruoyi.job.util.AbstractQuartzJob.execute(AbstractQuartzJob.java:42)\r\n at org.quartz.core.JobRunShell.run(JobRunShell.java:202)\r\n at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)\r\n', '2021-12-28 00:03:05');
|
||||
INSERT INTO `sys_job_log` VALUES (3, '文案RPC调用任务', 'DEFAULT', 'CopyWritingTask', '文案RPC调用任务 总共耗时:1毫秒', '1', 'org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named \'CopyWritingTask\' available\r\n at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:863)\r\n at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1344)\r\n at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:309)\r\n at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:283)\r\n at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)\r\n at com.ruoyi.common.core.utils.SpringUtils.getBean(SpringUtils.java:38)\r\n at com.ruoyi.job.util.JobInvokeUtil.invokeMethod(JobInvokeUtil.java:32)\r\n at com.ruoyi.job.util.QuartzDisallowConcurrentExecution.doExecute(QuartzDisallowConcurrentExecution.java:20)\r\n at com.ruoyi.job.util.AbstractQuartzJob.execute(AbstractQuartzJob.java:42)\r\n at org.quartz.core.JobRunShell.run(JobRunShell.java:202)\r\n at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)\r\n', '2021-12-28 00:03:05');
|
||||
INSERT INTO `sys_job_log` VALUES (4, '文案RPC调用任务', 'DEFAULT', 'CopyWritingTask', '文案RPC调用任务 总共耗时:5毫秒', '1', 'java.lang.NoSuchMethodException: com.xjs.job.task.CopyWritingTask.()\r\n at java.lang.Class.getDeclaredMethod(Class.java:2130)\r\n at com.ruoyi.job.util.JobInvokeUtil.invokeMethod(JobInvokeUtil.java:60)\r\n at com.ruoyi.job.util.JobInvokeUtil.invokeMethod(JobInvokeUtil.java:33)\r\n at com.ruoyi.job.util.QuartzDisallowConcurrentExecution.doExecute(QuartzDisallowConcurrentExecution.java:20)\r\n at com.ruoyi.job.util.AbstractQuartzJob.execute(AbstractQuartzJob.java:42)\r\n at org.quartz.core.JobRunShell.run(JobRunShell.java:202)\r\n at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)\r\n', '2021-12-28 00:04:33');
|
||||
INSERT INTO `sys_job_log` VALUES (5, '文案RPC调用任务', 'DEFAULT', 'CopyWritingTask', '文案RPC调用任务 总共耗时:0毫秒', '1', 'java.lang.NoSuchMethodException: com.xjs.job.task.CopyWritingTask.()\r\n at java.lang.Class.getDeclaredMethod(Class.java:2130)\r\n at com.ruoyi.job.util.JobInvokeUtil.invokeMethod(JobInvokeUtil.java:60)\r\n at com.ruoyi.job.util.JobInvokeUtil.invokeMethod(JobInvokeUtil.java:33)\r\n at com.ruoyi.job.util.QuartzDisallowConcurrentExecution.doExecute(QuartzDisallowConcurrentExecution.java:20)\r\n at com.ruoyi.job.util.AbstractQuartzJob.execute(AbstractQuartzJob.java:42)\r\n at org.quartz.core.JobRunShell.run(JobRunShell.java:202)\r\n at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)\r\n', '2021-12-28 00:04:33');
|
||||
INSERT INTO `sys_job_log` VALUES (4, '文案RPC调用任务', 'DEFAULT', 'CopyWritingTask', '文案RPC调用任务 总共耗时:5毫秒', '1', 'java.lang.NoSuchMethodException: com.xjs.job.task.openapi.CopyWritingTask.()\r\n at java.lang.Class.getDeclaredMethod(Class.java:2130)\r\n at com.ruoyi.job.util.JobInvokeUtil.invokeMethod(JobInvokeUtil.java:60)\r\n at com.ruoyi.job.util.JobInvokeUtil.invokeMethod(JobInvokeUtil.java:33)\r\n at com.ruoyi.job.util.QuartzDisallowConcurrentExecution.doExecute(QuartzDisallowConcurrentExecution.java:20)\r\n at com.ruoyi.job.util.AbstractQuartzJob.execute(AbstractQuartzJob.java:42)\r\n at org.quartz.core.JobRunShell.run(JobRunShell.java:202)\r\n at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)\r\n', '2021-12-28 00:04:33');
|
||||
INSERT INTO `sys_job_log` VALUES (5, '文案RPC调用任务', 'DEFAULT', 'CopyWritingTask', '文案RPC调用任务 总共耗时:0毫秒', '1', 'java.lang.NoSuchMethodException: com.xjs.job.task.openapi.CopyWritingTask.()\r\n at java.lang.Class.getDeclaredMethod(Class.java:2130)\r\n at com.ruoyi.job.util.JobInvokeUtil.invokeMethod(JobInvokeUtil.java:60)\r\n at com.ruoyi.job.util.JobInvokeUtil.invokeMethod(JobInvokeUtil.java:33)\r\n at com.ruoyi.job.util.QuartzDisallowConcurrentExecution.doExecute(QuartzDisallowConcurrentExecution.java:20)\r\n at com.ruoyi.job.util.AbstractQuartzJob.execute(AbstractQuartzJob.java:42)\r\n at org.quartz.core.JobRunShell.run(JobRunShell.java:202)\r\n at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)\r\n', '2021-12-28 00:04:33');
|
||||
INSERT INTO `sys_job_log` VALUES (6, '文案RPC调用任务', 'DEFAULT', 'CopyWritingTask.execute', '文案RPC调用任务 总共耗时:0毫秒', '0', '', '2021-12-28 00:05:38');
|
||||
INSERT INTO `sys_job_log` VALUES (7, '文案RPC调用任务', 'DEFAULT', 'CopyWritingTask.execute', '文案RPC调用任务 总共耗时:0毫秒', '0', '', '2021-12-28 00:05:38');
|
||||
INSERT INTO `sys_job_log` VALUES (8, '文案RPC调用任务', 'DEFAULT', 'CopyWritingTask.execute', '文案RPC调用任务 总共耗时:127毫秒', '0', '', '2021-12-28 00:14:26');
|
||||
|
|
|
|||
Loading…
Reference in New Issue