Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_57962205
redisson
提交
d9bb9763
R
redisson
项目概览
weixin_57962205
/
redisson
与 Fork 源项目一致
从无法访问的项目Fork
通知
10
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
redisson
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
d9bb9763
编写于
9月 01, 2021
作者:
N
Nikita Koksharov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
TasksInjector introduced
上级
f7e0d32d
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
86 addition
and
13 deletion
+86
-13
redisson/src/main/java/org/redisson/RedissonExecutorService.java
...n/src/main/java/org/redisson/RedissonExecutorService.java
+4
-2
redisson/src/main/java/org/redisson/api/WorkerOptions.java
redisson/src/main/java/org/redisson/api/WorkerOptions.java
+9
-1
redisson/src/main/java/org/redisson/executor/SpringTasksInjector.java
.../main/java/org/redisson/executor/SpringTasksInjector.java
+40
-0
redisson/src/main/java/org/redisson/executor/TasksInjector.java
...on/src/main/java/org/redisson/executor/TasksInjector.java
+27
-0
redisson/src/main/java/org/redisson/executor/TasksRunnerService.java
...c/main/java/org/redisson/executor/TasksRunnerService.java
+6
-10
未找到文件。
redisson/src/main/java/org/redisson/RedissonExecutorService.java
浏览文件 @
d9bb9763
...
...
@@ -305,8 +305,10 @@ public class RedissonExecutorService implements RScheduledExecutorService {
service
.
setSchedulerQueueName
(
schedulerQueueName
);
service
.
setTasksExpirationTimeName
(
tasksExpirationTimeName
);
service
.
setTasksRetryIntervalName
(
tasksRetryIntervalName
);
service
.
setBeanFactory
(
options
.
getBeanFactory
());
if
(
options
.
getTasksInjector
()
!=
null
)
{
service
.
setTasksInjector
(
options
.
getTasksInjector
());
}
ExecutorService
es
=
commandExecutor
.
getConnectionManager
().
getExecutor
();
if
(
options
.
getExecutorService
()
!=
null
)
{
es
=
options
.
getExecutorService
();
...
...
redisson/src/main/java/org/redisson/api/WorkerOptions.java
浏览文件 @
d9bb9763
...
...
@@ -22,6 +22,8 @@ import java.util.concurrent.TimeUnit;
import
org.redisson.api.executor.TaskListener
;
import
org.redisson.config.Config
;
import
org.redisson.executor.SpringTasksInjector
;
import
org.redisson.executor.TasksInjector
;
import
org.springframework.beans.factory.BeanFactory
;
/**
...
...
@@ -34,6 +36,7 @@ public final class WorkerOptions {
private
int
workers
=
1
;
private
ExecutorService
executorService
;
private
TasksInjector
tasksInjector
;
private
BeanFactory
beanFactory
;
private
long
taskTimeout
;
private
List
<
TaskListener
>
listeners
=
new
ArrayList
<>();
...
...
@@ -74,9 +77,14 @@ public final class WorkerOptions {
*/
public
WorkerOptions
beanFactory
(
BeanFactory
beanFactory
)
{
this
.
beanFactory
=
beanFactory
;
this
.
tasksInjector
=
new
SpringTasksInjector
(
beanFactory
);
return
this
;
}
public
TasksInjector
getTasksInjector
()
{
return
tasksInjector
;
}
public
ExecutorService
getExecutorService
()
{
return
executorService
;
}
...
...
redisson/src/main/java/org/redisson/executor/SpringTasksInjector.java
0 → 100644
浏览文件 @
d9bb9763
/**
* Copyright (c) 2013-2021 Nikita Koksharov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.redisson.executor
;
import
org.springframework.beans.factory.BeanFactory
;
import
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor
;
/**
*
* @author Nikita Koksharov
*
*/
public
class
SpringTasksInjector
implements
TasksInjector
{
private
BeanFactory
beanFactory
;
public
SpringTasksInjector
(
BeanFactory
beanFactory
)
{
this
.
beanFactory
=
beanFactory
;
}
@Override
public
void
inject
(
Object
task
)
{
AutowiredAnnotationBeanPostProcessor
bpp
=
new
AutowiredAnnotationBeanPostProcessor
();
bpp
.
setBeanFactory
(
beanFactory
);
bpp
.
processInjection
(
task
);
}
}
redisson/src/main/java/org/redisson/executor/TasksInjector.java
0 → 100644
浏览文件 @
d9bb9763
/**
* Copyright (c) 2013-2021 Nikita Koksharov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.redisson.executor
;
/**
*
* @author Nikita Koksharov
*
*/
public
interface
TasksInjector
{
void
inject
(
Object
task
);
}
redisson/src/main/java/org/redisson/executor/TasksRunnerService.java
浏览文件 @
d9bb9763
...
...
@@ -38,8 +38,6 @@ import org.redisson.misc.HashValue;
import
org.redisson.misc.Injector
;
import
org.redisson.remote.RequestId
;
import
org.redisson.remote.ResponseEntry
;
import
org.springframework.beans.factory.BeanFactory
;
import
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor
;
import
java.io.ByteArrayInputStream
;
import
java.io.ObjectInput
;
...
...
@@ -76,7 +74,7 @@ public class TasksRunnerService implements RemoteExecutorService {
private
String
tasksRetryIntervalName
;
private
String
tasksExpirationTimeName
;
private
BeanFactory
beanFactory
;
private
TasksInjector
tasksInjector
;
private
ConcurrentMap
<
String
,
ResponseEntry
>
responses
;
public
TasksRunnerService
(
CommandAsyncExecutor
commandExecutor
,
RedissonClient
redisson
,
Codec
codec
,
String
name
,
ConcurrentMap
<
String
,
ResponseEntry
>
responses
)
{
...
...
@@ -87,9 +85,9 @@ public class TasksRunnerService implements RemoteExecutorService {
this
.
codec
=
codec
;
}
public
void
set
BeanFactory
(
BeanFactory
beanFactory
)
{
this
.
beanFactory
=
beanFactory
;
public
void
set
TasksInjector
(
TasksInjector
tasksInjector
)
{
this
.
tasksInjector
=
tasksInjector
;
}
public
void
setTasksExpirationTimeName
(
String
tasksExpirationTimeName
)
{
...
...
@@ -314,10 +312,8 @@ public class TasksRunnerService implements RemoteExecutorService {
Injector
.
inject
(
task
,
RedissonClient
.
class
,
redisson
);
Injector
.
inject
(
task
,
String
.
class
,
params
.
getRequestId
());
if
(
beanFactory
!=
null
)
{
AutowiredAnnotationBeanPostProcessor
bpp
=
new
AutowiredAnnotationBeanPostProcessor
();
bpp
.
setBeanFactory
(
beanFactory
);
bpp
.
processInjection
(
task
);
if
(
tasksInjector
!=
null
)
{
tasksInjector
.
inject
(
task
);
}
return
task
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录