1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package com.kmall.schedule.utils;
- import com.kmall.common.utils.RRException;
- import com.kmall.common.utils.SpringContextUtils;
- import org.apache.commons.lang.StringUtils;
- import org.springframework.util.ReflectionUtils;
- import java.lang.reflect.Method;
- /**
- * 执行定时任务
- *
- * @author Scott
- * @email
- * @date 2016年11月30日 下午12:49:33
- */
- public class ScheduleRunnable implements Runnable {
- private Object target;
- private Method method;
- private String params;
- public ScheduleRunnable(String beanName, String methodName, String params) throws NoSuchMethodException, SecurityException {
- this.target = SpringContextUtils.getBean(beanName);
- this.params = params;
- if (StringUtils.isNotBlank(params)) {
- this.method = target.getClass().getDeclaredMethod(methodName, String.class);
- } else {
- this.method = target.getClass().getDeclaredMethod(methodName);
- }
- }
- @Override
- public void run() {
- try {
- ReflectionUtils.makeAccessible(method);
- if (StringUtils.isNotBlank(params)) {
- method.invoke(target, params);
- } else {
- method.invoke(target);
- }
- } catch (Exception e) {
- throw new RRException("执行定时任务失败", e);
- }
- }
- }
|