回调能否加个异步执行开关
回调一般与主流程无关,子任务也不需要回调的结果
目前的flow a->b->c a执行完b再执行c
如果配置成 a->b a->c 变成a执行完就会同时执行b和c(b的线程可能复用a的线程)
你说的意思是不是这样 (假设b你认为是异步,不需要等待) 不管上面的哪一种 b都得在新的线程中执行,且不参与flow中 也不需要等待结果?
不是的,是指在成功回调和失败回调中,成功回调一般都是一些异步的通知动作,失败回调可能是一些异步的记录日志操作之类,这部分应该有个是否以异步执行的开关。
不是的,是指在成功回调和失败回调中,成功回调一般都是一些异步的通知动作,失败回调可能是一些异步的记录日志操作之类,这部分应该有个是否以异步执行的开关。
这个开关是想根据某种条件判断是否执行? 那在回调的成功或失败的内部通过TaskSupport 拿到请求参数或者返回结果,进行自定义的判断是否可以满足你的需求
可以满足的。是我忽略了TaskSupport的作用了。 但还是希望能同时提供支持声明式和编程式的两种使用方式
可以满足的。是我忽略了TaskSupport的作用了。 但还是希望能同时提供支持声明式和编程式的两种使用方式 如果可以举个例子(伪代码就行)就更好示意了
- 希望能提供注解的方式去配置任务的回调是否是以异步去执行的
@Task(AsyncCallback = true)
目前的异步回调方式是自已去提交一个任务,并且这种回调方式的异常没有被全局异常捕获,或者说异常已经脱离了框架控制
@Override
public void onSuccess(TaskSupport support) {
future = support.executorService.submit(() -> {
try {
log.info("AService onSuccess Begin");
Thread.sleep(5000);
log.info("AService onSuccess Finish");
} catch (InterruptedException e) {
e.printStackTrace();
}
return 1000;
});
}
- 希望能提供注解的方式去配置任务的回调是否是以异步去执行的
@Task(AsyncCallback = true)目前的异步回调方式是自已去提交一个任务,并且这种回调方式的异常没有被全局异常捕获,或者说异常已经脱离了框架控制
@Override public void onSuccess(TaskSupport support) { future = support.executorService.submit(() -> { try { log.info("AService onSuccess Begin"); Thread.sleep(5000); log.info("AService onSuccess Finish"); } catch (InterruptedException e) { e.printStackTrace(); } return 1000; }); } ``
回调的内部再异常就需要自己控制了; 异步回调有好几种: 成功、失败、前置、后置 , 你希望通过注解属性只控制 onSuccess? 还是 都用一个注解属性控制所有的回调。如果每个回调都分别控制得设置多个注解属性。