设置单个任务超时时间轮

This commit is contained in:
wuweifeng10
2021-11-26 11:53:39 +08:00
parent 3e5b67d487
commit 10a29bec28
4 changed files with 4 additions and 33 deletions

View File

@@ -1,20 +0,0 @@
package com.jd.platform.async.callback;
/**
* @author wuweifeng wrote on 2019-12-20
* @version 1.0
*/
public interface ITimeoutWorker<T, V> extends IWorker<T, V> {
/**
* 每个worker都可以设置超时时间
* @return 毫秒超时时间
*/
long timeOut();
/**
* 是否开启单个执行单元的超时功能有时是一个group设置个超时而不具备关心单个worker的超时
* <p>注意,如果开启了单个执行单元的超时检测,将使线程池数量多出一倍</p>
* @return 是否开启
*/
boolean enableTimeOut();
}

View File

@@ -74,10 +74,6 @@ public class WorkerWrapper<T, V> {
* 注意该属性仅在nextWrapper数量<=1时有效>1时的情况是不存在的
*/
private volatile boolean needCheckNextWrapperResult = true;
/**
* 超时时间
*/
private Long delayMs;
private static final int FINISH = 1;
private static final int ERROR = 2;
@@ -629,12 +625,4 @@ public class WorkerWrapper<T, V> {
return wrapper;
}
}
public Long getDelayMs() {
return delayMs;
}
public void setDelayMs(Long delayMs) {
this.delayMs = delayMs;
}
}

View File

@@ -23,6 +23,10 @@ public class DeWorker implements IWorker<String, User>, ICallback<String, User>
return new User("user0");
}
@Override
public int timeout() {
return 75;
}
@Override
public User defaultValue() {

View File

@@ -46,7 +46,6 @@ public class Test {
.callback(w)
.build();
workerWrapper.setDelayMs(73L);
//虽然尚未执行但是也可以先取得结果的引用作为下一个任务的入参。V1.2前写法,需要手工给
//V1.3后不用给wrapper setParam了直接在worker的action里自行根据id获取即可.参考dependnew包下代码