这是关于在使用@Async注释调用相同方法时如何使用不同的执行程序。
问题是我们希望对某些外部调用进行重试(和日志记录)策略。所有这些逻辑都在一个带有@Async注释的方法中,并且要执行的业务逻辑被传递给它(一个Runnable):
@Async(value = "DefaultTaskExecutor}")
public void executeAsyncAndRetry(AsyncTask asyncTask) {
...
}
但我们希望根据调用,使用不同的线程池。
我认为这个@Async注释并不允许el从参数或类似的东西中获取执行者。
是否有其他方法可以为此配置注释,或者使用不同的方法来指定不同的执行器?
答案 0 :(得分:0)
是的,你可以。您需要在spring上下文文件中定义一个executor bean,并将这个bean id传递给@Async(" executor id"),如下所示。
EntityManager
有关详细信息,请参阅:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html