zoukankan      html  css  js  c++  java
  • 轻量级分布式延时任务处理组件easyTask-L-API介绍篇

      easyTask-L的API设计比较简洁、易于理解和使用。主要涉及环形队列类、配置类、任务超类以及监控类四个方面。下面逐一做简单介绍。本文只对比较重要的API做介绍,其他API还望读者自行探索

    环形队列(AnnularQueue)

      环形队列类设计为单例模式。通过AnnularQueue.getInstance();获取。

      1、void start(EasyTaskConfig config) throws Exception:

        启动easyTask-L,包括环形队列时钟、集群等一系列工作。且只需要在系统启动时调用一次即可。切勿重复调用。参数config是必须的,系统将此配置参数实例作为当前工作的参数。如果启动失败将抛出异常。

      2、String submit(Task task) throws Exception:

        向环形队列中提交新任务。提交失败则抛出异常

           3、String submitAllowWait(Task task) throws Exception

         向环形队列中提交新任务。提交失败则抛出异常。如果环形队列还没有启动成功,则任务不抛出异常,等待启动后再正式提交任务。

    配置类(EasyTaskConfig)

      前面说了环形队列(集群)启动时需要给一个启动配置参数。因为这是系统必须的东西。

      1、String zkAddress;

      集群zookeeper地址配置。必填  如:127.0.0.1:2181

      2、int backupCount ;

      任务备份数量,默认2。最大2,超过部分无效

      3、String taskStorePath;

      自定义任务本地存储路径。必填

      4、int sQLlitePoolSize

      sqlite连接池大小设置。默认cpu数的两倍

      5、int serverPort

      设置当前节点Netty服务端口号。默认2020

      6、int timeOut

      设置集群通信调用超时时间。默认3秒

      7、int loseTimeOut

      ZK节点信息失效超时时间。默认超过60s就判断为失效节点,任何其他节点可删除掉

      8、int deadTimeOut

      ZK节点信息死亡超时时间。默认超过30s就判断为Leader失效节点,其Follow节点可进入选举新Leader

      9、int heartBeat

      节点对zk的心跳频率。默认2s一次

      10、int tryCount

      集群节点之间通信失败重试次数。默认2次

      11、int clearScheduleBakTime

      清理任务备份表中失效的leader备份。默认1小时一次。单位毫秒

      12、ExecutorService clusterPool

      集群公用程池。暂时不用设置

      13、ExecutorService dispatchs

      环形队列任务调度线程池。默认为cpu核心数

      14、ExecutorService workers

      环形队列工作任务线程池。默认为cpu核心数2倍

    任务超类(Task)

      1、void setEndTimestamp(long endTimestamp)

      设置任务未来的执行时间戳。如果你设置的是一个过去的时间戳,则代表任务立即执行。适用于单次任务以及周期性任务

      2、void setTaskType(TaskType taskType)

      设置任务类型。单次任务或周期任务

      3、void setUnit(TimeUnit unit)

      设置周期任务的执行周期时间单位。支持天、小时、分、秒

      4、void setParam(Map<String,String> param)

      设置当前任务携带的执行参数。仅支持字符串类型。其他类型都可以转化为字符串

    环形队列监控(AnnularQueueMonitor)

      1、int getTaskInAnnularQueueQty()

      获取环形队列中等待被触发执行的任务数

      2、Map<String, String> getDispatchsPoolInfo()

      获取分派任务线程池信息。包括:taskQty队列中等待执行的任务数,completedQty已经执行完成的任务数,activeQty正在执行任务的线程数,coreSize设置的核心线程数

      3、Map<String, String> getWorkersPoolInfo()

      获取执行任务线程池信息。包括:taskQty队列中等待执行的任务数,completedQty已经执行完成的任务数,activeQty正在执行任务的线程数,coreSize设置的核心线程数

    集群监控(ClusterMonitor)

      1、String getCurrentNodeInfo()

      获取当前节点信息

      2、Map<String, Map<String, List>> getDBTraceInfoByTaskId(String taskId)

      获取任务的数据存储跟踪信息。因为涉及到访问数据库,不建议频繁调用

      3、ZKNode getCurrentZKNodeInfo()

      获取当前节点在zk上的注册信息

    数据存储监控(DBMonitor)

      1、Map<String,List> getInfoByTaskId(String taskId)

      获取任务在本节点的数据存储信息

      

  • 相关阅读:
    How to install Lineage Os ROM on any Android device [2 methods]
    2017 年不可错过的开发工具 Top 50
    (OK) 华为全网通 honor 5x
    (OK) (solved) How restore /cust partition
    (OK) 华为全网通 honor 5x
    (OK) 华为全网通 honor 5x
    Chris Lattner
    (OK) 救砖:华为全网通 honor 5x
    (OK) Linux 平台 CUST.zip 制作方法
    (OK) Linux 下解包华为固件包UPDATE.APP
  • 原文地址:https://www.cnblogs.com/liuche/p/13367437.html
Copyright © 2011-2022 走看看