Android开发搞Web-SpringBoot-添加定时器

背景

智能时代,解放双手的时代,接上一篇,我们好不容易在阿里云上部署了一个Web应用,网站跑得很正常,但通常我们会产生以下需求:

  1. 数据索引建立,比如每一小时更新一次搜索的索引。比如你写的一篇文章,要第二天或第三天才会被百度搜索到,就是说百度每天会更新一次自己的搜索索引。
  2. 健康检查,定时检查某些服务是否可用,在不可用时,发短信提醒。
  3. 其他需要跑的定时任务。

我们的要求

  1. 基于上述的说法,我们要在我们的应用中添加一个定时器,定时处理用户上传上来的文件,定时去检查一下百度网站是不是挂了。所以我们有了定时的需求。

直接开撸

启动MYSQL:

docker run --name ssevening-mysql -p 12345:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

如果没有创建数据库,那就登陆上去创建一把

docker exec -it ssevening-mysql bash

登陆MYSQL

mysql -u root -p
create database ssevening;

然后下载已写好的仓库代码:

git clone https://github.com/ssevening/SpringBootWithDocker.git

运行代码截图如下:

springboot定时器

然后通过命令行,我们就可以看到我们已经在后台执行的定时任务了。

springboot定时任务

然后我们再看代码,配一个定时任务需要哪些代码?

  1. 不需要增加任何依赖。
  2. 修改Application代码,增加@EnableScheduling // 开启定时执行任务功能

增加定时任务功能

  1. 定时器代码截图如下:可以通过:cron格式生成器 来生成你想要的时间。比如通过短信或邮件的方式,每半小时提醒自己起来走动走动,虽然有点重,一个小小的Android闹钟就可以解决的问题。

定时器代码

撸好了代码,发布到仓库

编译镜像

./gradlew build buildDocker

编译镜像

重命名和推送镜像到远程:

```

``docker push ssevening/gs-spring-boot-docker:v2.0.timer``

![推送到远程](https://www.ssevening.com/wp-content/uploads/2017/10/推送到远程.png)

现在我的仓库中就有一个 timer的版本了。

![上库成功](https://www.ssevening.com/wp-content/uploads/2017/10/上库成功.png)

后期就可以通过:

docker rmi -f 8eb2e8586d9a


删除我们本地的镜像,然后从远程拉下我们最新的镜像运行一把。

![docker镜像下载](https://www.ssevening.com/wp-content/uploads/2017/10/docker镜像下载.png)

![等下载成功](https://www.ssevening.com/wp-content/uploads/2017/10/等下载成功.png)

下载成功,运行行一把

docker run -p 80:8080 -t ssevening/gs-spring-boot-docker /bin/bash



然后我们的应用就牛逼了,然后用户量就来了,然后要求24小时不间断服务了,就算新版本发布也不能停机器了,这可怎么办?下一篇文章想一想,做一做,试一试吧!

发表评论

您的电子邮箱地址不会被公开。