mirror of
https://github.com/PowerJob/PowerJob.git
synced 2025-07-17 00:00:04 +08:00
[fix] add NPE protect for InstanceInfo
This commit is contained in:
parent
774126b0f1
commit
75090e56ad
@ -22,9 +22,11 @@ echo "================== 构建 powerjob-agent 镜像 =================="
|
|||||||
docker build -t tjqq/powerjob-agent:latest powerjob-worker-agent/. || exit
|
docker build -t tjqq/powerjob-agent:latest powerjob-worker-agent/. || exit
|
||||||
echo "================== 准备启动 powerjob-server =================="
|
echo "================== 准备启动 powerjob-server =================="
|
||||||
docker run -d \
|
docker run -d \
|
||||||
|
--rm \
|
||||||
|
--restart=always \
|
||||||
--name powerjob-server \
|
--name powerjob-server \
|
||||||
-p 7700:7700 -p 10086:10086 \
|
-p 7700:7700 -p 10086:10086 \
|
||||||
-e PARAMS="--spring.profiles.active=product --spring.datasource.core.jdbc-url=jdbc:mysql://172.27.147.252:3306/oms-product?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8 --spring.data.mongodb.uri=mongodb://172.27.147.252:27017/oms-product" \
|
-e PARAMS="--spring.profiles.active=product --spring.datasource.core.jdbc-url=jdbc:mysql://127.0.0.1:3306/powerjob-product?useUnicode=true&characterEncoding=UTF-8 --spring.data.mongodb.uri=mongodb://127.0.0.1:27017/powerjob-product" \
|
||||||
-v ~/docker/powerjob-server:/root/powerjob-server -v ~/.m2:/root/.m2 \
|
-v ~/docker/powerjob-server:/root/powerjob-server -v ~/.m2:/root/.m2 \
|
||||||
tjqq/powerjob-server:latest
|
tjqq/powerjob-server:latest
|
||||||
sleep 60
|
sleep 60
|
||||||
|
@ -68,7 +68,7 @@ public interface InstanceInfoRepository extends JpaRepository<InstanceInfoDO, Lo
|
|||||||
List<Long> findByJobIdInAndStatusIn(List<Long> jobIds, List<Integer> status);
|
List<Long> findByJobIdInAndStatusIn(List<Long> jobIds, List<Integer> status);
|
||||||
|
|
||||||
// 删除历史数据,JPA自带的删除居然是根据ID循环删,2000条数据删了几秒,也太拉垮了吧...
|
// 删除历史数据,JPA自带的删除居然是根据ID循环删,2000条数据删了几秒,也太拉垮了吧...
|
||||||
// 结果只能用 int 接受
|
// 结果只能用 int 接收
|
||||||
@Modifying
|
@Modifying
|
||||||
@Transactional
|
@Transactional
|
||||||
@Query(value = "delete from instance_info where gmt_modified < ?1", nativeQuery = true)
|
@Query(value = "delete from instance_info where gmt_modified < ?1", nativeQuery = true)
|
||||||
|
@ -80,10 +80,13 @@ public class InstanceManager {
|
|||||||
return jobInfoOpt.orElseThrow(() -> new IllegalArgumentException("can't find JobIno by jobId: " + jobId));
|
return jobInfoOpt.orElseThrow(() -> new IllegalArgumentException("can't find JobIno by jobId: " + jobId));
|
||||||
});
|
});
|
||||||
InstanceInfoDO instanceInfo = instanceInfoRepository.findByInstanceId(instanceId);
|
InstanceInfoDO instanceInfo = instanceInfoRepository.findByInstanceId(instanceId);
|
||||||
|
if (instanceInfo == null) {
|
||||||
|
log.warn("[InstanceManager-{}] can't find InstanceInfo from database", instanceId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
// 丢弃过期的上报数据
|
// 丢弃过期的上报数据
|
||||||
if (req.getReportTime() <= instanceInfo.getLastReportTime()) {
|
if (req.getReportTime() <= instanceInfo.getLastReportTime()) {
|
||||||
log.warn("[InstanceManager-{}] receive the expired status report request: {}, this report will br dropped.", instanceId, req);
|
log.warn("[InstanceManager-{}] receive the expired status report request: {}, this report will be dropped.", instanceId, req);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user