San*_*nka 5 java spring asynchronous blazeds
我需要以异步方式发送电子邮件,同时将数据保存到数据库中.
我的方法是这样的.
//I have tried with service layer annotating.But not worked.
@EnableAsync
class MyService{
public String saveMethod(List listOfData){
mail.sendEmailQuote(listOfData);
mail.sendEmailWorkflowTaskAssignment(listOfData);
myDao.saveData(listOfData);
}
}
Run Code Online (Sandbox Code Playgroud)
我需要以@Async方式执行以下方法.我应该在哪里放置@EnableAsync注释.这不是与时间表相关的事情.用户单击"保存"按钮时会发生这种情况 应用是使用flex spring blazeDS.没有我自己写的控制器.
我在代码中使用了@Async注释来跟踪2个方法.那些是在课堂电话邮件.
@Async
sendEmailQuote(listOfData){}
@Async
sendEmailWorkflowTaskAssignment(listOfData){}
Run Code Online (Sandbox Code Playgroud)
你能帮我找一下@EnableAsync的位置吗?
shi*_*zhz 10
EnableAsync用于配置并启用Spring的异步方法执行功能,它不应该放在你的Service或Component类上,它应该放在你的Configuration类上:
@Configuration
@EnableAsync
public class AppConfig {
}
Run Code Online (Sandbox Code Playgroud)
或者使用更多AsyncExecutor类似的配置:
@Configuration
@EnableAsync
public class AppConfig implements AsyncConfigurer {
@Override
public Executor getAsyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(7);
executor.setMaxPoolSize(42);
executor.setQueueCapacity(11);
executor.setThreadNamePrefix("MyExecutor-");
executor.initialize();
return executor;
}
}
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅它的java doc.
对于您所遵循的教程,EnableAsync将其放在上面Application,extends AsyncConfigurerSupport使用AsyncExecutor配置:
@SpringBootApplication
@EnableAsync
public class Application extends AsyncConfigurerSupport {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
public Executor getAsyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(2);
executor.setMaxPoolSize(2);
executor.setQueueCapacity(500);
executor.setThreadNamePrefix("GithubLookup-");
executor.initialize();
return executor;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10122 次 |
| 最近记录: |