业务执行后调用xxl-job执行指定任务

当我们执行完指定业务时需要调定时任务刷新数据,这时定时任务在本工程代码中是有的,重写定时任务逻辑太麻烦,因此直接从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);

                        }

                    }

                }

            }

        }

发布了52 篇原创文章 · 获赞 16 · 访问量 67万+

猜你喜欢

转载自blog.csdn.net/qq_30920479/article/details/103142875