java 数据处理任务程序快速起步,附带Github源码和教程,springboot

  1. 数据处理的引擎
    简单描述一下,比如说发动机4个冲程能完成一次做功输出,那整体看发动机完成一次任务(Job)分为4个步骤(step)。
    1个Job,4个步骤(step1,step2,step3,step4),做完之后就无限次循环这个Job就行了。
  2. 应用范围
    比方说你要开发一个爬虫去读网页的数据,那可能分为n多个步骤处理下来才能得到想要的数据,中途还会对各个步骤有所增减,包括读取数据后要存储数据库,对数据库的操作要具有原子性等等。
    又比方说你的程序处于后台的数据流当中,要不断的读取数据,处理数据,最后输出数据,就有点像spring的batch工程。当然我这个没那么强大,但是短小精干,通俗易懂。对于后期二次开发非常给力,话说spring最开始不也只是一个控制反转么,哈哈,王侯将相,怎么来着?

话不多说开整,github的地址

项目源码
https://github.com/heliangb46/simpleTask.git

我愿称之为“数据处理引擎”。
怎么能让你快速理解我的代码都干了什么,怎么干,然后能变成你自己的代码呢?
我是这样做的,利用git分支的优点。

你看到的main分支是最开始的源码,然后根据分支的名称(版本号),然后每个分支对应的readme.md文件都会说明这个分支做了什么。你一点一点仔细对比git的版本间的不同就明白我的程序要做什么了。每个分支的代码都是与其readme文件对应的。
在这里插入图片描述

这里如果涉及到处理事务的原子性问题时,相当于要将step中的execute方法加事务。即step要么成功,要么失败,不会执行一半。step是整个job的不可再分子程序。

以下下是版本的迭代说明

simpleTask

核心代码是(This code core):com.managefuture.task.scheduled.job.firstjob.FirstJobTask.java

序号,分支中文English
1这是一个非常简单的任务处理工程this is a very simple project to deal with task
2这个版本并不包含我自己的代码,基本都是springBoot的初始化内容this version has no code of written by myself, most of it is came from spring boot
3接下来请留意pom.xml中的版本号和git的分支名称next, please watch version in the pom.xml and the branch name of git
4,1.0.1这个版本增加了一个简单的定时任务执行器,每间隔2秒执行一次日志的输出:I am runnningthis version append a simple task executer, it can say “I am running” with every two second
5,1.0.2添加了一个任务,但是这两个任务是串行的add the second task,but those two task can run in only on process
6,1.0.3向SimpleTaskApplication中添加了多线程配置的代码,从而使两个task运行在不同的线程中,互不干扰add some code in “SimpleTaskApplication”, so those two task run in defferent process
7,1.0.4这里建议不要使用@Scheduled注解来控制周期,这里把@Scheduled注解中的周期配置成1,相当于一个cpu的时钟振子,然后通过这里的睡眠来控制任务的周期,达到一个后期可以动态更改程序运行周期的目的suggest do not us “@Scheduled” annotation to setting the period,this setting like a cpu frequency,then use sleep method to control the period, after all you can control the period in running time.
8,1.1.0我会做一个程序,用多个步骤来完成一个工作任务的程序,并且增加修改删除步骤的时候,也很容易。第一步,先做一个只需要一步就能够完成的任务I will make a program that can deal one job in few step, and it`s easily to modify the steps. first, make a job with one step
9,1.1.1加一个步骤append one more step
10,1.1.2加一个Jobappend one more Job
11,1.1.3让整个项目简单一些,只留下一个任务delete other code, but leave FirstJobTask
12,1.1.4让控制台输出更好看一些make the console formatted
13,1.2.0加入数据库功能add mysql db
14,1.3.0加入web的访问控制层add controller
15,1.3.1加入spring 官网的样例 restful 的web的访问控制层add spring demo restful web controller
16,1.3.2写了一个工具类MyFileUtils.java 用来读取文本文件,当然读取其他类型的文件也是可以的add MyFileUtils.java to read a txt file,or even other type file
17,1.3.3写了一个切面注解,用于显示调用方法入参和返回值的日志write a aop annotation to view method in/out parameter`s log

更新日志 2022年05月01日
合并代码到main分支

序号,分支中文English
16,1.3.2写了一个工具类MyFileUtils.java 用来读取文本文件,当然读取其他类型的文件也是可以的add MyFileUtils.java to read a txt file,or even other type file
17,1.3.3写了一个切面注解,用于显示调用方法入参和返回值的日志write a aop annotation to view method in/out parameter`s log
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值