Package com.google.code.lightssh.project.scheduler.web

Source Code of com.google.code.lightssh.project.scheduler.web.SchedulerAction

package com.google.code.lightssh.project.scheduler.web;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import com.google.code.lightssh.common.model.CronExpression;
import com.google.code.lightssh.common.model.page.ListPage;
import com.google.code.lightssh.common.web.action.BaseAction;
import com.google.code.lightssh.project.scheduler.entity.TriggerWrap;
import com.google.code.lightssh.project.scheduler.service.SchedulerManager;

/**
* scheduler action
* @author YangXiaojin
*
*/
@Component( "schedulerAction" )
@Scope("prototype")
public class SchedulerAction extends BaseAction{

  private static final long serialVersionUID = 6483507951968694317L;
 
  private ListPage<TriggerWrap> page;
 
  private String name;
 
  private String group;
 
  public ListPage<TriggerWrap> getPage() {
    return page;
  }

  public void setPage(ListPage<TriggerWrap> page) {
    this.page = page;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public String getGroup() {
    return group;
  }

  public void setGroup(String group) {
    this.group = group;
  }

  @Resource( name="schedulerManager" )
  private SchedulerManager schedulerManager;

  public void setSchedulerManager(SchedulerManager schedulerManager) {
    this.schedulerManager = schedulerManager;
  }
 
  /**
   * 列出所有定时任务
   */
  public String listTriggers(){
    if( page == null )
      page = new ListPage<TriggerWrap>();
   
    page.setSize(500);
    List<TriggerWrap> triggers = schedulerManager.listAllTrigger();
    if( triggers != null ){
      page.setAllSize(triggers.size());
      page.setList(triggers);
    }
    return SUCCESS;
  }
 
  /**
   * 停用/启用 Trigger
   */
  public String toggle(){
    try{
      schedulerManager.toggleTrigger(name,group);
    }catch( Exception e ){
      this.saveErrorMessage("任务操作失败:" + e.getMessage() );
    }
   
    return SUCCESS;
  }
 
  /**
   * 刷新定时任务
   */
  public String refresh(){
    try{
      schedulerManager.refresh(name,group);
    }catch( Exception e ){
      this.saveErrorMessage("刷新定时任务["+name+","+group+"]异常:" + e.getMessage() );
    }
    return SUCCESS;
  }
 
  /**
   * 编辑触发器
   */
  public String editTrigger(){
    try{
      request.setAttribute("trigger", schedulerManager.get(group, name) );
    }catch( Exception e ){
      this.saveErrorMessage("获取时钟异常:"+e.getMessage());
      return INPUT;
    }
    return SUCCESS;
  }
 
  /**
   * 更新触发器
   */
  public String saveTrigger(){
    String hour = request.getParameter("hour");
    String minute = request.getParameter("minute");
    try{
      CronExpression exp = new CronExpression("0",minute,hour,"?","*","*");
      schedulerManager.updateCronExp(name,group,exp);
      this.saveSuccessMessage("更新时钟成功!");
    }catch( Exception e ){
      this.addActionError("更新时钟异常:"+e.getMessage());
      return INPUT;
    }
    return SUCCESS;
  }

}
TOP

Related Classes of com.google.code.lightssh.project.scheduler.web.SchedulerAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.