业务执行后调用xxl-job执行指定任务
当我们执行完指定业务时需要调定时任务刷新数据,这时定时任务在本工程代码中是有的,重写定时任务逻辑太麻烦,因此直接从spring容器中获取xxl注册的bean然后拿到我们需要的定时任务bean执行execute方法WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();if ...
当我们执行完指定业务时需要调定时任务刷新数据,这时定时任务在本工程代码中是有的,重写定时任务逻辑太麻烦,因此直接从spring容器中获取xxl注册的bean然后拿到我们需要的定时任务bean执行execute方法
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
if (wac == null)
{
return;
}
// 从spring中拿到JobHandler注解的bean map
Map<String, Object> serviceBeanMap = wac.getBeansWithAnnotation(JobHandler.class);
if (serviceBeanMap != null && serviceBeanMap.size() > 0)
{
for (Object serviceBean : serviceBeanMap.values())
{
// 判断是否IJobHandler
if (serviceBean instanceof IJobHandler)
{
String name = serviceBean.getClass().getAnnotation(JobHandler.class).value();
if ("itemBalanceJobHandler".equals(name))
{
try
{
((IJobHandler) serviceBean).execute(null);
}
catch (Exception e)
{
logger.error("刷新子账号余额异常" + e);
}
}
}
}
}
更多推荐
所有评论(0)