Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
4a0fe49b
Unverified
提交
4a0fe49b
authored
9月 26, 2019
作者:
许雪里
提交者:
GitHub
9月 26, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1105 from WEIZIBIN/fix_graceful_shutdown_unregister_fast
优雅停机时,admin快速注销执行器地址
上级
9969e304
3f8befe8
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
59 行增加
和
4 行删除
+59
-4
XxlJobGroupDao.java
...n/src/main/java/com/xxl/job/admin/dao/XxlJobGroupDao.java
+4
-0
AdminBizImpl.java
...ain/java/com/xxl/job/admin/service/impl/AdminBizImpl.java
+39
-1
XxlJobGroupMapper.xml
...n/src/main/resources/mybatis-mapper/XxlJobGroupMapper.xml
+13
-0
XxlJobExecutor.java
...c/main/java/com/xxl/job/core/executor/XxlJobExecutor.java
+3
-3
没有找到文件。
xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobGroupDao.java
浏览文件 @
4a0fe49b
...
...
@@ -16,6 +16,10 @@ public interface XxlJobGroupDao {
public
List
<
XxlJobGroup
>
findByAddressType
(
@Param
(
"addressType"
)
int
addressType
);
public
List
<
XxlJobGroup
>
findAutoRegisterGroupByAppName
(
@Param
(
"appName"
)
String
appName
);
public
int
updateAddressListById
(
@Param
(
"id"
)
int
id
,
@Param
(
"addressList"
)
String
addressList
);
public
int
save
(
XxlJobGroup
xxlJobGroup
);
public
int
update
(
XxlJobGroup
xxlJobGroup
);
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/AdminBizImpl.java
浏览文件 @
4a0fe49b
package
com
.
xxl
.
job
.
admin
.
service
.
impl
;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.model.XxlJobLog
;
import
com.xxl.job.admin.core.thread.JobTriggerPoolHelper
;
import
com.xxl.job.admin.core.trigger.TriggerTypeEnum
;
import
com.xxl.job.admin.core.util.I18nUtil
;
import
com.xxl.job.admin.dao.XxlJobGroupDao
;
import
com.xxl.job.admin.dao.XxlJobInfoDao
;
import
com.xxl.job.admin.dao.XxlJobLogDao
;
import
com.xxl.job.admin.dao.XxlJobRegistryDao
;
...
...
@@ -16,6 +18,8 @@ import com.xxl.job.core.handler.IJobHandler;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.StringUtils
;
import
javax.annotation.Resource
;
import
java.text.MessageFormat
;
...
...
@@ -35,6 +39,8 @@ public class AdminBizImpl implements AdminBiz {
private
XxlJobInfoDao
xxlJobInfoDao
;
@Resource
private
XxlJobRegistryDao
xxlJobRegistryDao
;
@Resource
private
XxlJobGroupDao
xxlJobGroupDao
;
@Override
...
...
@@ -132,8 +138,40 @@ public class AdminBizImpl implements AdminBiz {
@Override
public
ReturnT
<
String
>
registryRemove
(
RegistryParam
registryParam
)
{
xxlJobRegistryDao
.
registryDelete
(
registryParam
.
getRegistGroup
(),
registryParam
.
getRegistryKey
(),
registryParam
.
getRegistryValue
());
int
ret
=
xxlJobRegistryDao
.
registryDelete
(
registryParam
.
getRegistGroup
(),
registryParam
.
getRegistryKey
(),
registryParam
.
getRegistryValue
());
if
(
ret
==
1
)
{
List
<
XxlJobGroup
>
autoRegisterGroups
=
xxlJobGroupDao
.
findAutoRegisterGroupByAppName
(
registryParam
.
getRegistryKey
());
removeRegisterFromGroups
(
autoRegisterGroups
,
registryParam
.
getRegistryValue
());
}
return
ReturnT
.
SUCCESS
;
}
private
void
removeRegisterFromGroups
(
List
<
XxlJobGroup
>
groups
,
String
address
)
{
if
(
StringUtils
.
isEmpty
(
address
))
{
return
;
}
if
(
CollectionUtils
.
isEmpty
(
groups
))
{
return
;
}
for
(
XxlJobGroup
group
:
groups
)
{
List
<
String
>
addressList
=
group
.
getRegistryList
();
if
(
addressList
==
null
)
{
continue
;
}
if
(!
addressList
.
contains
(
address
))
{
continue
;
}
addressList
.
remove
(
address
);
String
newAddressListStr
=
StringUtils
.
collectionToCommaDelimitedString
(
addressList
);
String
oldAddressListStr
=
group
.
getAddressList
();
int
update
=
xxlJobGroupDao
.
updateAddressListById
(
group
.
getId
(),
newAddressListStr
);
if
(
logger
.
isDebugEnabled
())
{
logger
.
debug
(
"update group name [{}] title [{}] old address list [{}] new address list [{}] update result [{}]"
,
group
.
getAppName
(),
group
.
getTitle
(),
oldAddressListStr
,
newAddressListStr
,
update
);
}
}
}
}
xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobGroupMapper.xml
浏览文件 @
4a0fe49b
...
...
@@ -27,6 +27,13 @@
ORDER BY t.order ASC
</select>
<select
id=
"findAutoRegisterGroupByAppName"
resultMap=
"XxlJobGroup"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM xxl_job_group AS t
WHERE `app_name` = #{appName}
AND `address_type` = 0
</select>
<select
id=
"findByAddressType"
parameterType=
"java.lang.Integer"
resultMap=
"XxlJobGroup"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM xxl_job_group AS t
...
...
@@ -49,6 +56,12 @@
WHERE id = #{id}
</update>
<update
id=
"updateAddressListById"
>
UPDATE xxl_job_group
SET `address_list` = #{addressList}
WHERE id = #{id}
</update>
<delete
id=
"remove"
parameterType=
"java.lang.Integer"
>
DELETE FROM xxl_job_group
WHERE id = #{id}
...
...
xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java
浏览文件 @
4a0fe49b
...
...
@@ -86,6 +86,9 @@ public class XxlJobExecutor {
initRpcProvider
(
ip
,
port
,
appName
,
accessToken
);
}
public
void
destroy
(){
// destory executor-server
stopRpcProvider
();
// destory jobThreadRepository
if
(
jobThreadRepository
.
size
()
>
0
)
{
for
(
Map
.
Entry
<
Integer
,
JobThread
>
item:
jobThreadRepository
.
entrySet
())
{
...
...
@@ -102,9 +105,6 @@ public class XxlJobExecutor {
// destory TriggerCallbackThread
TriggerCallbackThread
.
getInstance
().
toStop
();
// destory executor-server
stopRpcProvider
();
// destory invoker
stopInvokerFactory
();
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论