SpringBoot小实战——定时任务(微博热搜爬取)

SpringBoot小实战——定时任务(微博热搜爬取)


跟大家分享一个超有趣的实战小项目,页面可配置定时任务,代码案例已实现微博热搜爬取。
源码文末获取!!!

效果展示

展示页
在这里插入图片描述
操作页
在这里插入图片描述
任务执行效果图
在这里插入图片描述
在这里插入图片描述

相关技术介绍

SpringBoot+Layui+Jpa 快捷搭建系统实现数据增删查改

  • 后端框架SpringBoot
  • 前端页面Layui
  • 数据库技术Jpa

Quartz

QuartzJava定时任务领域一个非常优秀的框架,由OpenSymphony(一个开源组织)开发。如果你的定时任务没有分布式需求,但需要对任务有一定的动态管理,例如任务的启动、暂停、恢复、停止和触发时间修改,那么Quartz非常适合你。

这个框架进行了优良地解耦设计,整个模块可以分为三大部分:

  • Job:顾名思义,指待定时执行的具体工作内容;
  • Trigger:触发器,指定运行参数,包括运行次数、运行开始时间和技术时间、运行时长等;
  • Scheduler:调度器,将JobTrigger组装起来,使定时任务被真正执行;

简单示例

public static void main(String[] args) throws Exception {
        // 1.创建Scheduler的工厂
        SchedulerFactory factory = new StdSchedulerFactory();
   		// 2.从工厂中获取调度器实例
        Scheduler scheduler = factory.getScheduler();

        // 3.创建JobDetail实例,并与对应Job类绑定(Job执行内容)
        JobDetail job = JobBuilder.newJob(HotSearchCrawlJob.class)
                .withIdentity("job1", "group1")  // job的name和group 后续启停任务的唯一标识
                .build();

        // 4.构建Trigger实例,每隔2s执行一次,可使用SimpleScheduleBuilder或者CronScheduleBuilder
        Trigger trigger = TriggerBuilder.newTrigger()s
                .withIdentity("trigger1", "group1")  // trigger的name和group 后续修改的唯一标识
                .startNow()  //默认当前时间启动 
                .withSchedule(CronScheduleBuilder.cronSchedule("0/2 * * * * ?")) //两秒执行一次
                .build();

        // 5.注册任务和定时器
        scheduler.scheduleJob(job, trigger);
        System.out.println(System.currentTimeMillis());
     	// 6.启动 调度器
        scheduler.start();

        // 主线程睡眠3分钟
        TimeUnit.MINUTES.sleep(3);
 	    // 7,然后关闭调度器
        scheduler.shutdown();
        System.out.println(System.currentTimeMillis());
    }

爬虫

网络爬虫就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。原则上,只要是浏览器能做的事情,爬虫都能够做。
一般浏览器F12就可以调出开发者工具,可以在网络功能模块分析网页请求连接(如:微博请求热搜排行数据https://weibo.com/ajax/side/hotSearch)、也可以在元素模块查看html原始内容,借助正则表达式提取匹配数据。
在这里插入图片描述

总结

一直觉得定时任务是个很有意思的功能,定期自动运行十分省心,适用于批处理任务或数据收集与分析。通过这项目不但可以学到系统增删查改,而且可以对定时任务有更深的体验,也能感受下数据爬虫。

案例完整代码获取

关注微信公众号 菜鸟乐编程,然后发送:SpringBoot定时任务(ps:一字不能差哦)
关注微信公众号菜鸟乐编程,更多精彩等你发现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值