playaround88 / sizzler

定时任务、数据扫描任务,中间件平台

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

sizzler

定时任务、数据扫描任务,中间件平台

企业中大量充斥着定时任务,数据扫描任务。通常这些任务会分散在不同服务器或者项目中,这带来了很多问题。如何有效的集中企业中大量分散的定时任务,数据扫描任务,就是此系统关注的。

性能测试可以参考这里

https://github.com/playaround88/etl-lib/blob/master/README.md

企业中可能遇到的问题

  • 任务不可见,难以集中管理。
  • 任务可维护性低,修改通常需要改动代码。
  • 大量的定时、扫描开发,带来重复的工作量,开发成本高。
  • 程序内的定时任务,通常造成系统不能多节点运行。
  • 各个项目数据扫描任务,千差万别,可靠性低,容易引入bug。

sizzler平台的优点

  • 可启动多个节点,定时任务不会重复执行。
  • 按照规定的模式开发数据扫描,可以保证,并行情况下数据不会重复处理。
  • 数据扫描任务提供多种常用形式的适配,可以不需要任何代码开发。

数据扫描分核心概念

  • 数据源:标识数据的来源,基础的配置。例如数据库的url,用户名密码等。
  • 数据导入:标识具体的数据,关联具体数据源,并具体指定数据的位置。例如数据库的具体表。
  • 数据导出:标识数据的处理单元,具体的数据处理通常是有用户端处理。比如一个URL地址,那么系统就会把数据post到具体的URL。
  • 线程池:数据的处理过程通常是很短暂的,为了能够公用线程,提高性能,这里使用线程池。
  • 监听:负责监听数据导入的数据,并且提交任务到线程池。这部分是核心的处理逻辑,代码已固定,不需改动。

支持的数据源

  • 数据库,目前支持mysql,oracle,理论可以支持所有jdbc兼容的数据库。
  • redis
  • URL

配置即可使用的数据导入

  • 数据库表
  • redis队列
  • URL地址

配置即可使用的数据导出

  • redis队列
  • URL地址

About

定时任务、数据扫描任务,中间件平台

License:Apache License 2.0


Languages

Language:CSS 52.5%Language:JavaScript 36.8%Language:Java 10.6%Language:HTML 0.1%