调用日志的语句
AsyncManager
.me()
.execute
(
AsyncFactory
.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("not.null")
));
调用.me方法是生成 AsyncManager
private static AsyncManager me = new AsyncManager();
public static AsyncManager me()
{
return me;
}
调用.execute执行任务
/**
* 执行任务
*
* @param task 任务
*/
public void execute(TimerTask task)
{
executor.schedule(task, OPERATE_DELAY_TIME, TimeUnit.MILLISECONDS);
}
executor是线程池
/**
* 异步操作任务调度线程池
*/
private ScheduledExecutorService executor = SpringUtils.getBean("scheduledExecutorService");
获取线程
/**
* 执行周期性或定时任务
*/
@Bean(name = "scheduledExecutorService")
protected ScheduledExecutorService scheduledExecutorService()
{
return new ScheduledThreadPoolExecutor(corePoolSize,
//线程工厂名字
new BasicThreadFactory.Builder().namingPattern("schedule-pool-%d").daemon(true).build(),
new ThreadPoolExecutor.CallerRunsPolicy())
{
@Override
protected void afterExecute(Runnable r, Throwable t)
{
super.afterExecute(r, t);
Threads.printException(r, t);
}
};
}