Giter Site home page Giter Site logo

schedule-job's Introduction

schedule-job License Build Status unstable

项目基于 jdk1.8 采用 Spring Boot 框架

  • 集成了分布式任务调度框架 Quartz ,任务存储于数据库。
  • 使用SpringMVC作为路由控制, 集成 Swagger2 提供实时 RESTful API文档。
  • 数据持久层集成 Mybatis 框架。
  • 使用自定义注解 @TargetDataSource 实现了多数据源动态切换,支持数据库读写分离。
  • HTTP JOB 接口调用使用 OkHttp3 替代了 HttpClient
  • Thrift JOB 接口调用实现了 Thrift client 池化管理。
  • 集成了 Spring data redis,提供缓存服务。
项目目标
  • 该项目计划实现通过RESTful接口,动态管理基于Http(已完成)和Thrift调用的Quartz任务(任务的 添加、查询、禁用、启用、触发)。 比如添加一个基于HTTP接口调用的定时任务,只需要向接口传递JSON数据。
常见问题
  • 如何启动项目或启动失败?

需要在脚本里添加SPRING_CONFIG_NAME=app,datasource,quartz,redis。可参照项目里bin/service.sh

  • Spring Boot如何集成Mybatis?

Mybatis官方已经提供了spring-boot-starter-mybatis

  • Spring Boot如何集成Redis?

参照confing/redis 相关类

  • Spring Boot如何集成Quartz?

参照config/quartz下相关类

  • Spring Boot如何实现动态选择数据源(读写分离)?

参照anno/TargetDataSource,aspect/TargetDataSourceAspect注解类实现

提供接口
  • 查询任务列表接口
curl -X GET -H "Cache-Control: no-cache" "http://localhost:54321/jobs"
  • 添加任务接口
curl -X POST -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{
  "jobDO": {
    "description": "测试心跳检测",
    "group": "TEST_HTTP_JOB",
    "name": "test_heart_beat",
    "extInfo": {
      "type": "http_job",
      "method": "get",
      "url": "http://localhost:54321/heart_beat",
      "jsonParams": ""
    }
  },
  "triggerDOs": [
    {
      "cronExpression": "0/30 * * * * ?",
      "description": "心跳检测每30秒调用一次",
      "group": "TEST_HTTP_TRIGGER",
      "name": "test_heart_beat_trigger"
    }
  ]
}' "http://localhost:54321/jobs"
  • 查询任务接口
curl -X GET -H "Cache-Control: no-cache" "http://localhost:54321/jobs/{jobKey}/"
  • 移除任务接口
curl -X DELETE -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{
    "TEST_HTTP_JOB" : ["sync_test_job"]
}' "http://localhost:54321/jobs"
  • 触发任务接口
curl -X POST -H "Content-Type: application/json" 
             -H "Cache-Control: no-cache" -d '' "http://localhost:54321/jobs/{groupName}/{taskName}"

schedule-job's People

Contributors

lvhao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

schedule-job's Issues

db name不对

TicketMapper.xml文件中有:
learn.t_ticket

配置文件中的db name是schedule_job

Application startup failed

Caused by: java.lang.IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.