Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
bb
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abs_pom
bb
Commits
377f02ed
Commit
377f02ed
authored
Apr 20, 2020
by
zhaoyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
删除QUARTZJOB
parent
a1ec79b6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
0 additions
and
964 deletions
+0
-964
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/QuartzScheduler.java
+0
-3
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/acct/AcctDaySwitchJob.java
+0
-44
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/AbssqrKeeperJob.java
+0
-48
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/JobKeeperHandler.java
+0
-38
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/node/AbstractKeeperNode.java
+0
-134
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/node/AstModCompleteCheckKeeper.java
+0
-98
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/node/AstModTransformKeeper.java
+0
-64
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/node/DataCheckKeeper.java
+0
-0
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/node/HostHeartJobKeeper.java
+0
-65
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/node/PlanAstStatJobKeeper.java
+0
-66
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/node/PlanDailyKeeper.java
+0
-73
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/node/TransferDispatcherKeeper.java
+0
-72
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/plan/PlanDailyJob.java
+0
-153
app/web/src/main/java/com/abssqr/plat/web/controller/job/JobController.java
+0
-106
No files found.
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/QuartzScheduler.java
View file @
377f02ed
...
...
@@ -31,9 +31,6 @@ public class QuartzScheduler {
@Autowired
@Qualifier
(
"quartzDataSource"
)
private
DataSource
dataSource
;
@Autowired
private
AbssqrJobCollector
jobScheduler
;
@Bean
public
SchedulerFactoryBean
schedulerFactoryBean
()
throws
IOException
{
...
...
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/acct/AcctDaySwitchJob.java
deleted
100644 → 0
View file @
a1ec79b6
/**
* abssqr.com Inc.
* Copyright (c) 2017-2019 All Rights Reserved.
*/
package
com
.
abssqr
.
plat
.
biz
.
shared
.
scheduler
.
job
.
acct
;
import
com.abssqr.plat.biz.shared.scheduler.BaseQuartzJob
;
import
com.abssqr.plat.core.service.accounting.OrgAcctDayComponent
;
import
com.general.system.common.util.LogUtil
;
import
org.quartz.DisallowConcurrentExecution
;
import
org.quartz.PersistJobDataAfterExecution
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
/**
* 会计日切换定时任务调度
* @author bangis.wangdf
* @version com.abssqr.plat.biz.shared.scheduler.job.acctday: AcctDaySwitchJob.java, v 0.1 2019-12-11 11:07 bangis
* .wangdf Exp $
*/
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
@Component
public
class
AcctDaySwitchJob
extends
BaseQuartzJob
{
/**
* 每天 0 1/5 * * * ?
*/
@Value
(
"${sync.quartz.acctday.switch:0 1/5 * * * ?}"
)
private
String
cron
;
@Autowired
private
OrgAcctDayComponent
orgAcctDayComponent
;
@Override
protected
String
getCronExpr
()
{
return
cron
;
}
@Override
protected
void
doExecute
()
{
LogUtil
.
info
(
LOGGER
,
"会计日切换任务执行"
);
orgAcctDayComponent
.
acctDaySwitch
();
}
}
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/AbssqrKeeperJob.java
deleted
100644 → 0
View file @
a1ec79b6
/**
* abssqr.com Inc.
* Copyright (c) 2017-2019 All Rights Reserved.
*/
package
com
.
abssqr
.
plat
.
biz
.
shared
.
scheduler
.
job
.
keeper
;
import
com.abssqr.plat.biz.shared.scheduler.BaseQuartzJob
;
import
com.general.system.common.util.LogUtil
;
import
com.general.system.common.util.SystemDateUtil
;
import
org.quartz.DisallowConcurrentExecution
;
import
org.quartz.PersistJobDataAfterExecution
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
/**
* 任务监控 异常通知
* @author hanfei
* @version $Id: AbssqrJobKeeper.java, v 0.1 2019-07-26 1:06 PM hanfei Exp $
*/
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
@Component
public
class
AbssqrKeeperJob
extends
BaseQuartzJob
{
@Autowired
private
JobKeeperHandler
jobKeeperHandler
;
/**
* 间隔5分钟监控 执行情况
*/
@Value
(
"${sync.quartz.plan.keeper}"
)
private
String
cron
;
@Override
protected
String
getCronExpr
()
{
return
cron
;
}
@Override
protected
boolean
isRequestRecovery
()
{
return
true
;
}
@Override
protected
void
doExecute
()
{
LogUtil
.
info
(
LOGGER
,
"任务监控 总执行器"
);
// 执行任务监控执行器
jobKeeperHandler
.
execute
(
SystemDateUtil
.
getSystemDate
());
}
}
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/JobKeeperHandler.java
deleted
100644 → 0
View file @
a1ec79b6
/**
* abssqr.com Inc.
* Copyright (c) 2017-2019 All Rights Reserved.
*/
package
com
.
abssqr
.
plat
.
biz
.
shared
.
scheduler
.
job
.
keeper
;
import
com.abssqr.plat.biz.shared.scheduler.job.keeper.node.AbstractKeeperNode
;
import
com.general.system.common.util.LogUtil
;
import
com.general.system.util.adapter.pipeline.AbstractMultiplePipeline
;
import
com.google.common.collect.Lists
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.Date
;
/**
* 任务监控器执行链
*
* @author hanfei
* @version $Id: JobKeeperExecute.java, v 0.1 2019-07-26 2:32 PM hanfei Exp $
*/
@Component
public
class
JobKeeperHandler
extends
AbstractMultiplePipeline
<
Date
>
{
protected
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
getClass
());
@Autowired
(
required
=
false
)
private
AbstractKeeperNode
[]
abstractKeeperNodes
;
@Override
public
void
initHandlers
()
{
LogUtil
.
info
(
LOGGER
,
"任务监控 总执行器"
);
super
.
setHandlers
(
Lists
.
newArrayList
(
abstractKeeperNodes
));
}
}
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/node/AbstractKeeperNode.java
deleted
100644 → 0
View file @
a1ec79b6
/**
* abssqr.com Inc.
* Copyright (c) 2017-2019 All Rights Reserved.
*/
package
com
.
abssqr
.
plat
.
biz
.
shared
.
scheduler
.
job
.
keeper
.
node
;
import
com.abssqr.plat.common.facade.model.plan.PlanBase
;
import
com.abssqr.plat.common.model.domain.job.JobControl
;
import
com.abssqr.plat.common.model.exception.AbssqrBizException
;
import
com.abssqr.plat.common.model.repo.job.JobControlRepository
;
import
com.abssqr.plat.core.service.accounting.OrgAcctDayComponent
;
import
com.abssqr.plat.core.service.notice.AbssqrNoticeManager
;
import
com.general.system.common.model.IEnum
;
import
com.general.system.util.adapter.pipeline.AbstractMultiplePipelineNode
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
java.time.LocalDate
;
import
java.time.ZoneId
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.Set
;
/**
* 任务监控执行器节点 基类
*
* @author hanfei
* @version $Id: AbstractKeeperNode.java, v 0.1 2019-07-26 2:55 PM hanfei Exp $
*/
public
abstract
class
AbstractKeeperNode
extends
AbstractMultiplePipelineNode
<
Date
>
{
protected
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
getClass
());
@Autowired
private
JobControlRepository
jobControlRepository
;
@Autowired
protected
AbssqrNoticeManager
abssqrNoticeManager
;
@Autowired
protected
OrgAcctDayComponent
orgAcctDayComponent
;
/**
* 执行次数
*/
protected
Long
execTimes
=
1L
;
@Override
protected
Void
handle
(
Date
systemDate
)
{
if
(
this
.
judge
(
getWatchJob
())){
doHandle
(
systemDate
);
}
return
null
;
}
/**
* 判断监控job是否启用
* @param watchJob
* @return
*/
private
boolean
judge
(
String
watchJob
)
{
if
(
StringUtils
.
isNotBlank
(
watchJob
)){
JobControl
jobControl
=
jobControlRepository
.
selectByJobName
(
watchJob
);
if
(
jobControl
.
getIsEff
().
isYes
()){
return
true
;
}
return
false
;
}
return
true
;
}
public
void
sendBussinessNotice
(
PlanBase
planEntity
,
String
bizCode
,
String
content
,
Set
<
String
>
receivers
)
{
abssqrNoticeManager
.
sendBusinessNotice
(
planEntity
,
bizCode
,
getBizType
(),
content
,
receivers
);
}
public
void
sendSystemNotice
(
String
bizTitle
,
String
bizCode
,
String
content
,
Set
<
String
>
receivers
)
{
abssqrNoticeManager
.
sendSystemNotice
(
bizTitle
,
bizCode
,
getBizType
(),
content
,
receivers
);
}
public
Set
<
String
>
getAdminReceivers
()
{
return
abssqrNoticeManager
.
getAdminReceivers
();
}
/**
* 获取指定时间
* @param currentTime
* @param deadline y M d h m s/h m s
* @return
*/
protected
Date
getDeadLineTime
(
Date
currentTime
,
String
deadline
)
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
currentTime
);
String
[]
times
=
deadline
.
split
(
" "
);
if
(
times
.
length
==
6
)
{
calendar
.
set
(
Calendar
.
YEAR
,
Integer
.
valueOf
(
times
[
0
]));
calendar
.
set
(
Calendar
.
MONTH
,
Integer
.
valueOf
(
times
[
1
])
-
1
);
calendar
.
set
(
Calendar
.
DAY_OF_MONTH
,
Integer
.
valueOf
(
times
[
2
]));
calendar
.
set
(
Calendar
.
HOUR_OF_DAY
,
Integer
.
valueOf
(
times
[
3
]));
calendar
.
set
(
Calendar
.
MINUTE
,
Integer
.
valueOf
(
times
[
4
]));
calendar
.
set
(
Calendar
.
SECOND
,
Integer
.
valueOf
(
times
[
5
]));
}
else
if
(
times
.
length
==
3
)
{
calendar
.
set
(
Calendar
.
HOUR_OF_DAY
,
Integer
.
valueOf
(
times
[
0
]));
calendar
.
set
(
Calendar
.
MINUTE
,
Integer
.
valueOf
(
times
[
1
]));
calendar
.
set
(
Calendar
.
SECOND
,
Integer
.
valueOf
(
times
[
2
]));
}
else
{
throw
new
AbssqrBizException
(
"deadline格式不正确"
);
}
return
calendar
.
getTime
();
}
/**
* 获取当前的标准日期
* @return
*/
public
Date
getCurrentStanderDate
(){
return
Date
.
from
(
LocalDate
.
now
()
.
atStartOfDay
(
ZoneId
.
systemDefault
())
.
toInstant
());
}
protected
abstract
IEnum
getBizType
();
protected
abstract
String
getWatchJob
();
protected
abstract
Void
doHandle
(
Date
date
);
}
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/node/AstModCompleteCheckKeeper.java
deleted
100644 → 0
View file @
a1ec79b6
package
com
.
abssqr
.
plat
.
biz
.
shared
.
scheduler
.
job
.
keeper
.
node
;
import
com.abssqr.plat.common.facade.enums.AbssqrNoticeTypeEnum
;
import
com.abssqr.plat.common.facade.enums.PlanTaskTypeEnum
;
import
com.abssqr.plat.common.facade.enums.SyncTaskTypeEnum
;
import
com.abssqr.plat.common.facade.enums.TaskStatusEnum
;
import
com.abssqr.plat.common.facade.model.plan.PlanBase
;
import
com.abssqr.plat.common.model.domain.plan.PlanTaskLog
;
import
com.abssqr.plat.common.model.domain.task.ctr.AstSyncTaskCtrLog
;
import
com.abssqr.plat.common.model.enums.OrgCodeEnum
;
import
com.abssqr.plat.common.model.enums.OrgTypeEnum
;
import
com.abssqr.plat.common.model.repo.plan.PlanTaskLogRepo
;
import
com.abssqr.plat.common.model.repo.task.AstSyncTaskCtrRepo
;
import
com.general.system.common.model.IEnum
;
import
com.general.system.common.util.LogUtil
;
import
com.general.system.common.util.SystemDateUtil
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
/**
* 模型转换完成通知
*/
@Component
public
class
AstModCompleteCheckKeeper
extends
AbstractKeeperNode
{
@Autowired
PlanTaskLogRepo
planTaskLogRepo
;
@Autowired
AstSyncTaskCtrRepo
astSyncTaskCtrRepo
;
@Override
protected
Void
doHandle
(
Date
date
)
{
for
(
OrgCodeEnum
orgCodeEnum
:
OrgCodeEnum
.
values
())
{
if
(
orgCodeEnum
.
getType
()
==
OrgTypeEnum
.
ABS
)
{
continue
;
}
LogUtil
.
info
(
LOGGER
,
"模型转换完成监控-start"
);
Date
execDate
=
orgAcctDayComponent
.
getTrfAcctDay
().
getStandardDate
();
List
<
PlanTaskLog
>
tasks
=
planTaskLogRepo
.
getTasks
(
execDate
,
PlanTaskTypeEnum
.
AST_MOD_COMPLETE_CHECK
);
List
<
String
>
orgCodes
=
tasks
.
stream
().
map
(
PlanTaskLog:
:
getPlanNo
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
orgCodes
)
||
!
orgCodes
.
contains
(
orgCodeEnum
.
getCode
()))
{
AstSyncTaskCtrLog
lastTaskLog
=
astSyncTaskCtrRepo
.
getTaskLogByExecDate
(
execDate
,
SyncTaskTypeEnum
.
AST_MOD
,
orgCodeEnum
.
getCode
());
if
(
lastTaskLog
!=
null
)
{
//如果同步完成
if
(
TaskStatusEnum
.
SUCCESS
.
getCode
().
equals
(
lastTaskLog
.
getStatus
().
getCode
()))
{
PlanTaskLog
planTaskLog
=
new
PlanTaskLog
();
planTaskLog
.
setExecDate
(
execDate
);
planTaskLog
.
setPlanNo
(
orgCodeEnum
.
getCode
());
planTaskLog
.
setTaskType
(
PlanTaskTypeEnum
.
AST_MOD_COMPLETE_CHECK
);
planTaskLogRepo
.
createTask
(
planTaskLog
);
Set
<
String
>
receivers
=
super
.
getAdminReceivers
();
Date
compelteDate
=
SystemDateUtil
.
getSystemDate
();
PlanBase
planBase
=
new
PlanBase
();
sendBussinessNotice
(
planBase
,
orgCodeEnum
.
getCode
(),
buildNoticeMessage
(
execDate
,
compelteDate
,
orgCodeEnum
),
receivers
);
}
}
}
}
LogUtil
.
info
(
LOGGER
,
"模型转换完成监控-end"
);
return
null
;
}
private
String
buildNoticeMessage
(
Date
currDate
,
Date
completeDate
,
OrgCodeEnum
orgCodeEnum
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
SimpleDateFormat
sdf2
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
String
currAccDateStr
=
sdf
.
format
(
currDate
);
String
completeDateStr
=
sdf2
.
format
(
completeDate
);
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
"机构["
);
sb
.
append
(
orgCodeEnum
.
getCode
());
sb
.
append
(
"]"
);
sb
.
append
(
currAccDateStr
);
sb
.
append
(
"模型转换任务已完成 完成时间为:"
);
sb
.
append
(
completeDateStr
);
return
sb
.
toString
();
}
@Override
protected
IEnum
getBizType
()
{
return
AbssqrNoticeTypeEnum
.
AstModCompleteCheck
;
}
@Override
protected
String
getWatchJob
()
{
return
"Wk1009AstSyncDispatcher"
;
}
}
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/node/AstModTransformKeeper.java
deleted
100644 → 0
View file @
a1ec79b6
/**
* abssqr.com Inc.
* Copyright (c) 2017-2019 All Rights Reserved.
*/
package
com
.
abssqr
.
plat
.
biz
.
shared
.
scheduler
.
job
.
keeper
.
node
;
import
com.abssqr.plat.common.dal.sync.auto.resultmap.MfsFailSyncBill
;
import
com.abssqr.plat.common.facade.enums.AbssqrNoticeTypeEnum
;
import
com.abssqr.plat.common.facade.enums.TaskStatusEnum
;
import
com.abssqr.plat.common.model.wk.repo.WkMfsSyncCtrRepo
;
import
com.general.system.common.model.IEnum
;
import
com.general.system.common.util.LogUtil
;
import
com.general.system.common.util.MessageUtil
;
import
com.google.common.collect.Lists
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
java.util.Date
;
import
java.util.Set
;
/**
* 资产同步模型转换 异常监控
*
* @author hanfei
* @version $Id: AstSyncDispatcherKeeper.java, v 0.1 2019-07-26 2:31 PM hanfei Exp $
*/
@Component
public
class
AstModTransformKeeper
extends
AbstractKeeperNode
{
@Autowired
private
WkMfsSyncCtrRepo
wkMfsSyncCtrRepo
;
@Value
(
"${wkabs.org.zhaolian:1009}"
)
private
String
zhaolianOrgCode
;
@Override
protected
Void
doHandle
(
Date
accountDate
)
{
LogUtil
.
info
(
LOGGER
,
"资产模型转换任务监控-start"
);
MfsFailSyncBill
bill
=
wkMfsSyncCtrRepo
.
countFailSyncBill
(
null
,
execTimes
,
Lists
.
newArrayList
(
TaskStatusEnum
.
INIT
.
getCode
(),
TaskStatusEnum
.
EXECUTING
.
getCode
(),
TaskStatusEnum
.
FAILURE
.
getCode
()));
if
(
bill
!=
null
&&
bill
.
getCnt
()
>
0
)
{
// 获取用户
String
msg
=
MessageUtil
.
formatMsg
(
"模型转换异常,异常数量[{0}],最大重试次数[{1}]"
,
bill
.
getCnt
(),
bill
.
getMaxExecTimes
());
LogUtil
.
info
(
LOGGER
,
msg
);
// 获取用户
Set
<
String
>
receivers
=
super
.
getAdminReceivers
();
sendSystemNotice
(
"资产同步模型转换告警"
,
zhaolianOrgCode
,
msg
,
receivers
);
}
LogUtil
.
info
(
LOGGER
,
"资产模型转换任务监控-end"
);
return
null
;
}
@Override
protected
IEnum
getBizType
()
{
return
AbssqrNoticeTypeEnum
.
WkMfsModTransform
;
}
@Override
protected
String
getWatchJob
()
{
return
"Wk1009AstSyncDispatcher"
;
}
}
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/node/DataCheckKeeper.java
deleted
100644 → 0
View file @
a1ec79b6
This diff is collapsed.
Click to expand it.
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/node/HostHeartJobKeeper.java
deleted
100644 → 0
View file @
a1ec79b6
/**
* abssqr.com Inc.
* Copyright (c) 2017-2019 All Rights Reserved.
*//*
package com.abssqr.plat.biz.shared.scheduler.job.keeper.node;
import com.abssqr.plat.common.facade.enums.AbssqrNoticeTypeEnum;
import com.abssqr.plat.common.facade.system.HostInfo;
import com.abssqr.plat.core.service.host.HostManager;
import com.general.system.common.model.IEnum;
import com.general.system.common.util.LogUtil;
import com.general.system.common.util.MessageUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Set;
*/
/**
* 心跳任务 异常监控
* <p>
* 心跳30分钟执行一次 超过30分钟没有心跳的默认系统挂掉了
*
* @author xiachenxiang
* @version com.abssqr.plat.biz.shared.scheduler.job.keeper.node: HostHeartKeeper.java, v 0.1 2019-09-17 1:59 PM xiachenxiang Exp $
*//*
@Component
public class HostHeartJobKeeper extends AbstractKeeperNode {
@Autowired
private HostManager hostManager;
private static final Integer OVER_TIME = 31;
@Override
protected Void doHandle(Date date) {
LogUtil.info(LOGGER, "心跳任务监控-start");
List<HostInfo> hostInfoList = hostManager.listOvertimeHost(date, OVER_TIME);
if (hostInfoList != null && hostInfoList.size() > 0) {
String msg = MessageUtil.formatMsg("检测到超时主机有[{0}]台,请排查具体原因!", hostInfoList.size());
// 获取用户
Set<String> receivers = super.getAdminReceivers();
super.sendNotice("主机连接超时告警", AbssqrNoticeTypeEnum.HostHeart.getCode(), msg, receivers);
}
LogUtil.info(LOGGER, "心跳任务监控-end");
return null;
}
@Override
protected IEnum getBizType() {
return AbssqrNoticeTypeEnum.HostHeart;
}
@Override
protected String getWatchJob() {
return null;
}
}
*/
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/node/PlanAstStatJobKeeper.java
deleted
100644 → 0
View file @
a1ec79b6
/**
* abssqr.com Inc.
* Copyright (c) 2017-2019 All Rights Reserved.
*/
package
com
.
abssqr
.
plat
.
biz
.
shared
.
scheduler
.
job
.
keeper
.
node
;
import
cn.hutool.core.date.DateUtil
;
import
com.abssqr.plat.common.facade.enums.AbssqrNoticeTypeEnum
;
import
com.abssqr.plat.common.facade.enums.OrgAstStatStatusEnum
;
import
com.abssqr.plat.common.model.repo.ast.PlanAstStatTaskRepo
;
import
com.general.system.common.model.IEnum
;
import
com.general.system.common.util.LogUtil
;
import
com.general.system.common.util.MessageUtil
;
import
com.general.system.common.util.SystemDateUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
java.util.Date
;
import
java.util.Set
;
/**
* 放款计划统计任务监控
*
* @author hanfei
* @version $Id: PlanAstStatJobKeeper.java, v 0.1 2019-07-26 2:28 PM hanfei Exp $
*/
@Component
public
class
PlanAstStatJobKeeper
extends
AbstractKeeperNode
{
@Autowired
private
PlanAstStatTaskRepo
planAstStatTaskRepo
;
@Override
protected
Void
doHandle
(
Date
date
)
{
LogUtil
.
info
(
LOGGER
,
"放款计划统计任务监控-start"
);
Date
currentTime
=
getCurrentStanderDate
();
Date
deadLine
=
DateUtil
.
offsetMinute
(
currentTime
,
-
20
).
toJdkDate
();
Long
count
=
planAstStatTaskRepo
.
countByStatusAndTime
(
deadLine
,
OrgAstStatStatusEnum
.
PROCESS
.
getCode
());
if
(
count
!=
null
&&
count
>
0
)
{
String
msg
=
MessageUtil
.
formatMsg
(
"放款计划统计任务告警,有[{0}]个任务超过10分钟未完成,请排查具体原因"
,
count
);
// 获取用户
Set
<
String
>
receivers
=
super
.
getAdminReceivers
();
sendSystemNotice
(
"放款计划统计任务告警"
,
"ALL"
,
msg
,
receivers
);
}
LogUtil
.
info
(
LOGGER
,
"放款计划统计任务监控-end"
);
return
null
;
}
@Override
public
IEnum
getBizType
()
{
return
AbssqrNoticeTypeEnum
.
PlanAstStat
;
}
@Override
protected
String
getWatchJob
()
{
return
"PlanAstStatTaskDispatcher"
;
}
}
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/node/PlanDailyKeeper.java
deleted
100644 → 0
View file @
a1ec79b6
/**
* abssqr.com Inc.
* Copyright (c) 2017-2019 All Rights Reserved.
*//*
package com.abssqr.plat.biz.shared.scheduler.job.keeper.node;
import com.abssqr.plat.biz.shared.scheduler.job.plan.PlanDailyJob;
import com.abssqr.plat.common.facade.enums.AbssqrNoticeTypeEnum;
import com.abssqr.plat.common.model.repo.plan.PlanRepo;
import com.general.system.common.model.IEnum;
import com.general.system.common.util.LogUtil;
import com.general.system.common.util.MessageUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.Set;
*/
/**
* 每日计划任务监控
*
* @author xiachenxiang
* @version com.abssqr.plat.biz.shared.scheduler.job.keeper.node: PlanDailyKeeper.java, v 0.1 2019-09-27 2:04 PM xiachenxiang Exp $
*//*
//@Component
public class PlanDailyKeeper extends AbstractKeeperNode {
@Autowired
private PlanRepo planRepo;
@Value("${wkabs.planDaily.zhaolian.deadline:8 0 0}")
private String deadline;
@Value("${wkabs.org.zhaolian:1009}")
private String zhaolianOrgCode;
@Override
protected IEnum getBizType() {
return AbssqrNoticeTypeEnum.PlanDailyKeeper;
}
@Override
protected String getWatchJob() {
return PlanDailyJob.class.getName();
}
@Override
protected Void doHandle(Date date) {
LogUtil.info(LOGGER, "每日计划任务监控-start");
// 判断是否大于指定时间
Date currentTime = date;
Date deadlineTime = super.getDeadLineTime(currentTime, deadline);
if (currentTime.compareTo(deadlineTime) > 0) {
Date curDate = SystemDayUtil.getDay().getStandardDate();
Long count = planRepo.getFailDailyCount(curDate);
if (count != null && count > 0) {
String msg = MessageUtil.formatMsg("每日计划任务监控到有[{0}]条失败任务,请排查具体原因!", count);
LogUtil.info(LOGGER, msg);
// 获取用户
Set<String> receivers = super.getAdminReceivers();
super.sendSystemNotice("每日计划任务告警", zhaolianOrgCode, msg, receivers);
}
}
LogUtil.info(LOGGER, "每日计划任务监控-end");
return null;
}
}
*/
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/keeper/node/TransferDispatcherKeeper.java
deleted
100644 → 0
View file @
a1ec79b6
/**
* abssqr.com Inc.
* Copyright (c) 2017-2019 All Rights Reserved.
*//*
package com.abssqr.plat.biz.shared.scheduler.job.keeper.node;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.abssqr.plat.common.dal.mysql.auto.dao.TrTaskDAO;
import com.abssqr.plat.common.dal.mysql.auto.resultmap.TransferFailTaskStat;
import com.abssqr.plat.common.facade.enums.AbssqrNoticeTypeEnum;
import com.abssqr.plat.common.facade.enums.TaskStatusEnum;
import com.abssqr.plat.common.facade.model.CommonPlanEntity;
import com.abssqr.plat.common.facade.model.plan.PlanBase;
import com.general.system.common.model.IEnum;
import com.general.system.common.util.DateTimeUtil;
import com.general.system.common.util.LogUtil;
import com.general.system.common.util.MessageUtil;
import com.general.system.tool.util.ToolUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Set;
*/
/**
* 资产转让任务监控
*
* @author hanfei
* @version $Id: TransferDispatcherKeeper.java, v 0.1 2019-07-26 2:30 PM hanfei Exp $
*//*
//@Component
public class TransferDispatcherKeeper extends AbstractKeeperNode {
@Autowired
private TrTaskDAO trTaskDAO;
@Value("${wkabs.org.zhaolian:1009}")
private String zhaolianOrgCode;
@Override
protected Void doHandle(Date accountDate) {
LogUtil.info(LOGGER, "资产转让任务监控-start");
Long cnt = trTaskDAO.countFailTrTask(DateUtil.beginOfDay(accountDate), execTimes);
if (cnt != null && cnt > 0) {
String msg = MessageUtil.formatMsg("资产转让任务监控到有[{0}]条失败任务,请排查具体原因!", cnt);
LogUtil.info(LOGGER, msg);
// 获取用户
Set<String> receivers = super.getAdminReceivers();
super.sendSystemNotice("资产转让任务告警", zhaolianOrgCode, msg, receivers);
LogUtil.info(LOGGER, "资产转让任务监控-end");
}
return null;
}
@Override
public IEnum getBizType() {
return AbssqrNoticeTypeEnum.TransferAst;
}
@Override
protected String getWatchJob() {
return "trTaskDispatcher";
}
}
*/
app/biz/shared/src/main/java/com/abssqr/plat/biz/shared/scheduler/job/plan/PlanDailyJob.java
deleted
100644 → 0
View file @
a1ec79b6
/**
* abssqr.com Inc.
* Copyright (c) 2017-2019 All Rights Reserved.
*/
package
com
.
abssqr
.
plat
.
biz
.
shared
.
scheduler
.
job
.
plan
;
import
java.util.Date
;
import
java.util.List
;
import
com.abssqr.plat.biz.shared.handler.PlanSettleHandler
;
import
com.abssqr.plat.biz.shared.scheduler.BaseQuartzJob
;
import
com.abssqr.plat.common.facade.enums.PlanStatusEnum
;
import
com.abssqr.plat.common.facade.model.plan.PlanBase
;
import
com.abssqr.plat.common.model.repo.plan.PlanRepo
;
import
com.abssqr.plat.core.service.accounting.OrgAcctDayComponent
;
import
com.general.system.bpm.enums.ApproveStatusEnum
;
import
com.general.system.common.util.DateTimeUtil
;
import
com.general.system.common.util.LogUtil
;
import
com.general.system.common.util.VarChecker
;
import
com.general.system.tool.util.ToolUtil
;
import
com.google.common.collect.Lists
;
import
org.quartz.DisallowConcurrentExecution
;
import
org.quartz.PersistJobDataAfterExecution
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
org.springframework.transaction.TransactionStatus
;
import
org.springframework.transaction.support.TransactionCallbackWithoutResult
;
import
org.springframework.transaction.support.TransactionTemplate
;
/**
* 计划资产需求统计任务
*
* @author zhenxuan.luo
* @version com.abssqr.plat.biz.shared.scheduler.job.plan: PlanPackGenJob.java, v 0.1 2019-06-18 21:19 zhenxuan.luo
* Exp $
*/
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
@Component
public
class
PlanDailyJob
extends
BaseQuartzJob
{
private
final
static
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
PlanDailyJob
.
class
);
@Autowired
private
PlanSettleHandler
planSettleHandler
;
@Autowired
private
TransactionTemplate
transactionTemplate
;
@Autowired
private
PlanRepo
planRepo
;
@Autowired
private
OrgAcctDayComponent
orgAcctDayComponent
;
/**
* 每天 45 7/20 * * * ?
*/
@Value
(
"${sync.quartz.plan.daily}"
)
private
String
cron
;
@Override
protected
String
getCronExpr
()
{
return
cron
;
}
@Override
protected
boolean
isRequestRecovery
()
{
return
true
;
}
@Override
public
void
doExecute
()
{
Date
curDate
=
orgAcctDayComponent
.
getTrfAcctDay
().
getStandardDate
();
LogUtil
.
info
(
LOGGER
,
"[DailyJob]-[{0}]计划每日处理任务start"
,
curDate
);
// 查询计划
List
<
PlanBase
>
planBaseList
=
planRepo
.
getPlansByStatusList
(
null
,
Lists
.
newArrayList
(
PlanStatusEnum
.
ONGOING
,
PlanStatusEnum
.
PREPARING
));
if
(
ToolUtil
.
isEmpty
(
planBaseList
))
{
return
;
}
for
(
PlanBase
planEntity
:
planBaseList
)
{
transactionTemplate
.
execute
(
new
TransactionCallbackWithoutResult
()
{
@Override
protected
void
doInTransactionWithoutResult
(
TransactionStatus
status
)
{
try
{
//执行计划每日任务
lockEntityAndExecute
(
curDate
,
planEntity
);
}
catch
(
Exception
e
)
{
LogUtil
.
error
(
LOGGER
,
e
,
"{0}[{1}]日切获取锁失败"
,
planEntity
.
getPlanType
().
getDesc
(),
planEntity
);
}
}
});
}
}
/**
* 计划状态变更
*
* @param curDate
* @param planEntity
* @return
*/
public
void
lockEntityAndExecute
(
Date
curDate
,
PlanBase
planEntity
)
{
//顺序不可逆。如果先执行存续期任务可能会漏掉当日变更为存续期的计划
LogUtil
.
info
(
LOGGER
,
"{0}[{1}]日初计划状态变更任务执行"
,
planEntity
.
getPlanType
().
getDesc
(),
planEntity
.
getPlanNo
());
// 承接池计划 加锁
PlanBase
planBase
=
planRepo
.
lockPlanByNo
(
planEntity
.
getPlanNo
());
VarChecker
.
checkNotNull
(
planBase
,
"计划查询加锁为空[{0}]"
,
planBase
.
getPlanNo
());
if
(
PlanStatusEnum
.
PREPARING
==
planBase
.
getStatus
()
&&
DateTimeUtil
.
calcDayDiff
(
curDate
,
planBase
.
getBeginDate
())
>=
0L
&&
planBase
.
getApproveStatus
()
==
ApproveStatusEnum
.
PASSED
)
{
// 变更状态
planBase
.
setStatus
(
PlanStatusEnum
.
ONGOING
);
}
// 执行 计划每日业务
this
.
onGoingPlansTask
(
curDate
,
planBase
);
// 承接池状态与时间变更
planBase
.
setLastUpdateDate
(
curDate
);
planRepo
.
updatePlan
(
planBase
);
}
/**
* 存续期任务
*
* @param curDate
* @param planEntity
*/
private
void
onGoingPlansTask
(
Date
curDate
,
PlanBase
planEntity
)
{
if
(
PlanStatusEnum
.
ONGOING
==
planEntity
.
getStatus
())
{
//存续期任务执行
if
(
planEntity
.
getLastUpdateDate
()
!=
null
&&
DateTimeUtil
.
calcDayDiff
(
curDate
,
planEntity
.
getLastUpdateDate
())
<=
0
)
{
LogUtil
.
info
(
LOGGER
,
"{0}[{1}]最近更新日期为[{2}],跳过执行"
,
planEntity
.
getPlanType
().
getDesc
(),
planEntity
.
getPlanNo
(),
planEntity
.
getLastUpdateDate
());
return
;
}
LogUtil
.
info
(
LOGGER
,
"{0}[{1}]日初任务执行"
,
planEntity
.
getPlanType
().
getDesc
(),
planEntity
.
getPlanNo
());
/**
* 以下执行顺序不能调换
*/
// 结息
planSettleHandler
.
execute
(
planEntity
,
curDate
);
}
}
}
\ No newline at end of file
app/web/src/main/java/com/abssqr/plat/web/controller/job/JobController.java
deleted
100644 → 0
View file @
a1ec79b6
/**
* abssqr.com Inc.
* Copyright (c) 2017-2018 All Rights Reserved.
*/
package
com
.
abssqr
.
plat
.
web
.
controller
.
job
;
//import com.abssqr.plat.biz.shared.scheduler.job.plan.LenderOrgAstClearingOrderJob;
//import com.abssqr.plat.biz.shared.scheduler.job.plan.LenderOrgAstStatJob;
import
java.util.List
;
import
com.abssqr.plat.biz.shared.scheduler.job.plan.PlanDailyJob
;
import
com.abssqr.plat.common.facade.model.account.Account
;
import
com.abssqr.plat.common.facade.model.plan.PlanBase
;
import
com.abssqr.plat.common.facade.service.AccountService
;
import
com.abssqr.plat.common.model.repo.plan.PlanRepo
;
import
com.abssqr.plat.common.model.repo.report.PlanReportRepo
;
import
com.abssqr.plat.common.model.repo.task.AstSyncTaskCtrRepo
;
import
com.abssqr.plat.core.service.accounting.OrgAcctDayComponent
;
import
com.abssqr.plat.core.service.plan.PlanManager
;
import
cn.hutool.core.date.DateUtil
;
import
com.general.enhanced.controller.annotation.RestJsonController
;
import
com.general.system.common.model.BaseResult
;
import
com.general.system.common.util.VarChecker
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
/**
* job 手工出发
*
* @author yaphet
* @version com.abssqr.admin.web.controller.product: ProductController.java, v 0.1 2018-03-02 下午3:32 yaphet Exp $
*/
@RestJsonController
public
class
JobController
{
@Autowired
private
AstSyncTaskCtrRepo
astSyncTaskCtrRepo
;
@Autowired
private
PlanManager
planManager
;
@Autowired
private
PlanRepo
planRepo
;
@Autowired
private
PlanDailyJob
planDailyJob
;
@Autowired
private
PlanReportRepo
planReportRepo
;
@Autowired
private
AccountService
accountService
;
@Autowired
private
OrgAcctDayComponent
orgAcctDayComponent
;
/**
* 每日处理
*
* @return
* @description
*/
@RequestMapping
(
path
=
"/job/planDailyJob.json"
,
method
=
RequestMethod
.
GET
)
public
BaseResult
<
Boolean
>
planDailyJob
()
{
planDailyJob
.
doExecute
();
return
BaseResult
.
success
(
null
);
}
/**
* 查询账户余额
*
* @return
* @description
*/
@RequestMapping
(
path
=
"/acct/balance/all.json"
,
method
=
RequestMethod
.
GET
)
public
List
<
Account
>
allBalance
()
{
return
accountService
.
queryBalance
();
}
/**
* 初始化计划 日报基础数据
*
* @param planNo
* @param date
* @return
*/
@RequestMapping
(
path
=
"/report/default.json"
,
method
=
RequestMethod
.
GET
)
public
BaseResult
<
Boolean
>
initDefaultReport001
(
@RequestParam
String
planNo
,
@RequestParam
String
date
)
{
// 校验计划
PlanBase
planBase
=
planManager
.
getPlanFullByNo
(
planNo
);
VarChecker
.
checkNotNull
(
planBase
,
"错误的计划编号"
);
// 初始化上一日空值报表基础数据
int
cnt
=
planReportRepo
.
defaultRPT001Init
(
planNo
,
DateUtil
.
parseDate
(
date
));
return
BaseResult
.
success
(
cnt
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment