⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 taskqueue.java

📁 一种采用java语言实现数据缓存的实现2,可用于weblogic websphere
💻 JAVA
字号:
package collector.queue;

/*
 * TaskQueue.java
 *
 * Created on 2003年3月10日, 下午2:31
 */

import java.util.*;

import collector.common.*;

/**
 *
 * @author  WangJun
 */
public class TaskQueue {
  //private static Vector[] m_TaskBuffer ;
  private static int m_max_task_num;

  private static int CHANNEL_TASK_POS = 0; // taskchannel
  private static int TASK_CLASS_POS = 1; //taskclass
//  private static int PARA_CLASS_POS = 2; //paraclass
//  private static int TASK_POS = 1; //TermTaskInfo
  private static int MAX_POS_NUM = 2;

  private static ArrayList[] m_TaskBuffer = new ArrayList[CollectorDefine.
      MAX_TASKCHANNEL_NUM];
  /** Creates a new instance of TaskQueue */
  public TaskQueue(int m_max_task_num) {
    TaskQueue.m_max_task_num = m_max_task_num;

    for (int i = 0; i < m_max_task_num; i++) {
      m_TaskBuffer[i] = null;
      m_TaskBuffer[i] = new ArrayList(MAX_POS_NUM);

      for (int j = 0; j < MAX_POS_NUM; j++) {
        m_TaskBuffer[i].add(null);
      }
    }
  }

  public static int getTaskBufferNum(int m_taskno) {
    if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
      return -1;
    }

    int m_num = 0;
    m_num = m_TaskBuffer[m_taskno].size();

    return m_num;
  }

  public static int clearTaskBuffer(int m_taskno) {
    if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
      return -1;
    }

    channel_task m_channel_task = null;

    if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
      m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
          CHANNEL_TASK_POS);

      if (m_channel_task == null) {
        return -1;
      }

      m_channel_task.setStatus(CollectorDefine.TASK_FREE);
    }

    putTaskBuffer(m_taskno, m_channel_task);
    putTaskBuffer(m_taskno, (TaskClass)null);

    return 1;
  }

  public static int isTaskBufferValid(int m_taskno) {
    if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
      return -1;
    }

    channel_task m_channel_task = null;
    if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
      m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
          CHANNEL_TASK_POS);

    }
    if (m_channel_task == null) {
      return -1;
    }

    return 1;
  }

  /*
    public static int setTaskBufferInvalid(int m_taskno) {
      if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
        return -1;
      }
      channel_task m_channel_task = null;
      if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
        m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
            CHANNEL_TASK_POS);
      }
      if (m_channel_task == null) {
        return -1;
      }
      m_channel_task = null;
      return 1;
    }
   */
  /*  public static int isLocalTaskChannel(int m_taskno, long m_pComputerId) {
      if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
        return -1;
      }
      taskchannel m_TaskChannel = null;
      if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
        m_TaskChannel = (taskchannel) m_TaskBuffer[m_taskno].get(
            CHANNEL_TASK_POS);
      }
      if (m_TaskChannel == null) {
        return -1;
      }
      if (m_TaskChannel.getHostId() != m_pComputerId) {
        return -1;
      }
      return 1;
    }
   */
  public static int setTaskBufferUsed(int m_taskno) {
    if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
      return -1;
    }
    channel_task m_channel_task = null;

    if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
      m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
          CHANNEL_TASK_POS);

    }
    if (m_channel_task == null) {
      return -1;
    }

    m_channel_task.setStatus(CollectorDefine.TASK_USED);

    putTaskBuffer(m_taskno, m_channel_task);
    return 1;
  }

  public static int setTaskBufferFree(int m_taskno) {
    if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
      return -1;
    }

    channel_task m_channel_task = null;

    if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
      m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
          CHANNEL_TASK_POS);

    }
    if (m_channel_task == null) {
      return -1;
    }

    m_channel_task.setStatus(CollectorDefine.TASK_FREE);

    putTaskBuffer(m_taskno, m_channel_task);
    return 1;
  }

  public static int setTaskBufferReadyDel(int m_taskno) {
    if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
      System.out.println("setTaskBufferReadyDel In TaskQueue Error #1");
      return -1;
    }

    channel_task m_channel_task = null;
    if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
      m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
          CHANNEL_TASK_POS);

    }
    if (m_channel_task == null) {
      System.out.println("setTaskBufferReadyDel In TaskQueue Error #2");
      return -1;
    }

    //we use dialDevId instand of task close time !!
    m_channel_task.setTime(System.currentTimeMillis());
    m_channel_task.setStatus(CollectorDefine.TASK_READY_DEL);

    putTaskBuffer(m_taskno, m_channel_task);

    return 1;

  }

  public static long getTaskBufferComputerId(int m_taskno) {
    if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
      return -1;
    }

    long ret = -1;

    channel_task m_channel_task = null;
    if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
      m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
          CHANNEL_TASK_POS);

    }
    if (m_channel_task == null) {
      return -1;
    }

    return m_channel_task.getComputerId();
  }

  public static void setTaskBufferComputerId(int m_taskno, long m_computer_id) {
    if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
      return;
    }

    channel_task m_channel_task = null;
    if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
      m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
          CHANNEL_TASK_POS);

    }
    if (m_channel_task == null) {
      return;
    }

    m_channel_task.setComputerId(m_computer_id);
  }

  public static int getTaskBufferStatus(int m_taskno) {
    if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
      return -1;
    }

    int ret = -1;

    channel_task m_channel_task = null;
    if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
      m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
          CHANNEL_TASK_POS);

    }
    if (m_channel_task == null) {
      return -1;
    }

    ret = m_channel_task.getStatus();

    return ret;
  }

  public static int ifReadyDel(int m_taskno) {
    if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
      System.out.println("ifReadyDel In TaskQueue Error #1");
      return -1;
    }

    int ret = -1;

    channel_task m_channel_task = null;
    if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
      m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
          CHANNEL_TASK_POS);

    }
    if (m_channel_task == null) {
      System.out.println("ifReadyDel In TaskQueue Error #2");
      return -1;
    }

    ret = m_channel_task.getStatus();
    if (ret == CollectorDefine.TASK_READY_DEL) {
      // wj modi 20040428 at nanjing
//      if ((System.currentTimeMillis() -m_TaskChannel.getDialDevId() )>= 1)
//      if ( (System.currentTimeMillis() - m_channel_task.getTime()) >= 100)
      {

        // wj modi 20040428 at nanjing
        return 1;
      }
    }

    return -1;
  }

  public static int isTaskBufferFree(int m_taskno) {
    if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
      System.out.println("isTaskBufferFree In  TaskQueue Error #1");
      return -1;
    }

    channel_task m_channel_task = null;
    if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
      m_channel_task = (channel_task) m_TaskBuffer[m_taskno].get(
          CHANNEL_TASK_POS);

    }
    if (m_channel_task == null) {
      System.out.println("isTaskBufferFree In  TaskQueue Error #2");
      return -1;
    }

    if (m_channel_task.getStatus() == CollectorDefine.TASK_FREE) {
      return 1;
    }

    return -1;
  }

  public static int initTaskBuffer(int m_taskno) {
    if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
      return -1;
    }
    channel_task m_channel_task = new channel_task();
    m_TaskBuffer[m_taskno].add(CHANNEL_TASK_POS, m_channel_task);
    m_TaskBuffer[m_taskno].add(TASK_CLASS_POS, null);
    return 1;
  }

  /*  public static int putTaskBuffer(int m_taskno, int m_termno) {
      if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
        return -1;
      }
      m_TaskBuffer[m_taskno].set(CHANNEL_TASK_POS, paraclass);
      return 1;
    }
   */
  public static int putTaskBuffer(int m_taskno, TaskClass taskclass) {
    if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
      return -1;
    }
    m_TaskBuffer[m_taskno].set(TASK_CLASS_POS, taskclass);
    return 1;
  }

  public static int putTaskBuffer(int m_taskno, channel_task m_channel_task) {
    if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
      return -1;
    }

    if (m_taskno >= TaskQueue.m_max_task_num) {
      return CollectorDefine.OVER_BUFFER_NUM;
    }

    m_TaskBuffer[m_taskno].set(CHANNEL_TASK_POS, m_channel_task);

    return 1;
  }

  /*  public static int putTaskBuffer(int m_taskno, TermTaskInfo m_pTermTaskInfo) {
      if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
        return -1;
      }
      m_TaskBuffer[m_taskno].set(TASK_POS, m_pTermTaskInfo);
      return 1;
    }
   */
  /*  public static ParaClass getTaskBufferPa(int m_taskno) {
      if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
        return null;
      }
      if (m_taskno >= TaskQueue.m_max_task_num) {
        return null;
      }
      if (m_TaskBuffer[m_taskno].size() > PARA_CLASS_POS) {
        return (ParaClass) m_TaskBuffer[m_taskno].get(PARA_CLASS_POS);
      }
      return null;
    }
   */

  public static TaskClass getTaskBufferTa(int m_taskno) {
    if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
      return null;
    }
    if (m_TaskBuffer[m_taskno].size() > TASK_CLASS_POS) {
      return (TaskClass) m_TaskBuffer[m_taskno].get(TASK_CLASS_POS);
    }
    return null;
  }

  /*
    public static taskchannel getTaskBufferTaCh(int m_taskno) {
      if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
        return null;
      }
      if (m_TaskBuffer[m_taskno].size() > CHANNEL_TASK_POS) {
        return (taskchannel) m_TaskBuffer[m_taskno].get(CHANNEL_TASK_POS);
      }
      return null;
    }
   */
  /*  public static TermTaskInfo getTaskBufferTask(int m_taskno) {
      if (m_taskno < 0 || m_taskno >= TaskQueue.m_max_task_num) {
        return null;
      }
      if (m_TaskBuffer[m_taskno].size() > TASK_POS) {
        return (TermTaskInfo) m_TaskBuffer[m_taskno].get(TASK_POS);
      }
      return null;
    }
   */
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -