当前位置: 首页 > news >正文

网站群建设 公司企查查企业信息查询在线

网站群建设 公司,企查查企业信息查询在线,公司注册网站有安全风险怎么注销,国外有哪些优秀的网站文章目录前言一、异步方法调用1、导入依赖2、创建异步执行任务线程池3、创建业务层接口和实现类4、创建业务层接口和实现类二、测试定时任务1.导入依赖2.编写测试类#xff0c;开启扫描定时任务3.测试三、实现定时发送邮件案例1.邮箱开启IMAP服务2.导入依赖3.导入EmailUtil4.编… 文章目录前言一、异步方法调用1、导入依赖2、创建异步执行任务线程池3、创建业务层接口和实现类4、创建业务层接口和实现类二、测试定时任务1.导入依赖2.编写测试类开启扫描定时任务3.测试三、实现定时发送邮件案例1.邮箱开启IMAP服务2.导入依赖3.导入EmailUtil4.编写邮件发送方法5.开启异步和定时任务总结前言 Quartz是一个完全由java编写的开源作业调度框架、它的简单易用受到业内人士的一致好评。本篇记录怎么用SpringBoot使用Quartz 一、异步方法调用 由于多个任务同时执行时默认为单线程所以我们用异步方法调用使其成为多线程执行 看一个案例 1、导入依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdscoperuntime/scopeoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency2、创建异步执行任务线程池 这里我们使用springboot自带的线程池 package com.lzl.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.AsyncConfigurer; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import java.util.concurrent.Executor;Configuration public class AsyncExcutorPoolConfig implements AsyncConfigurer {Bean(asyncExecutor)Overridepublic Executor getAsyncExecutor() {//Spring自带的线程池最常用ThreadPoolTaskExecutor taskExecutor new ThreadPoolTaskExecutor();//线程IO密集型 和 CPU密集型//线程设置参数taskExecutor.setCorePoolSize(8);//核心线程数根据电脑的核数taskExecutor.setMaxPoolSize(16);//最大线程数一般为核心线程数的2倍taskExecutor.setWaitForTasksToCompleteOnShutdown(true);//任务执行完成后关闭return taskExecutor;} }注意注解不要少 3、创建业务层接口和实现类 package com.lzl.Service;/*** --效率是成功的核心关键--** Author lzl* Date 2023/3/7 09:42*/public interface AsyncService {void testAsync1();void testAsync2(); } package com.lzl.Service.impl;import com.lzl.Service.AsyncService; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service;/*** --效率是成功的核心关键--** Author lzl* Date 2023/3/7 09:43*/ Service public class AsyncImpl implements AsyncService {AsyncOverridepublic void testAsync1() {try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(精准是唯一重要的标准);}Async(asyncExecutor)//开启异步执行Overridepublic void testAsync2() {try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(效率是成功的核心关键);} } 4、创建业务层接口和实现类 package com.lzl.task;import com.lzl.Service.AsyncService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** --效率是成功的核心关键--** Author lzl* Date 2023/3/7 09:40*/ RestController RequestMapping(/login) public class LoginController {Autowiredprivate AsyncService service;RequestMapping(/Async1)public String testAsync1(){service.testAsync1();return 牛逼;}RequestMapping(/Async2)public String testAsync2(){service.testAsync2();return 不牛逼;} } 在启动类开启异步 整体目录结构如下 测试 运行项目访问controller 访问controller时页面直接出现返回值控制台过了两秒打印文字证明异步执行成功 二、测试定时任务 1.导入依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdscoperuntime/scopeoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency2.编写测试类开启扫描定时任务 package com.lzl.task;import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Scheduled;import java.util.Date;/*** --效率是成功的核心关键--** Author lzl* Date 2023/3/7 10:42*/ //任务类 Configuration public class Tasks {AsyncScheduled(cron */2 * * * * ?)public void task1(){System.out.println(效率new Date().toLocaleString());}AsyncScheduled(cron */1 * * * * ?)public void task2(){System.out.println(精准new Date().toLocaleString());} } 3.测试 三、实现定时发送邮件案例 这里以QQ邮箱为例这个功能类似于通过邮箱找回密码类似需要我们进行授权码操作 1.邮箱开启IMAP服务 登陆QQ邮箱找到帐户下拉 看到如下图 我这里已经开启了按照步骤操作会有一个授权码保存好下边步骤要用此处不再演示 2.导入依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- 邮箱 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-mail/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdscoperuntime/scopeoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency3.导入EmailUtil package com.lzl.utils;import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties; import java.util.Random; /*** --效率是成功的核心关键--** Author lzl* Date 2023/3/7 11:44*/public class EmailUtil {private static final String USER qq.com; // 发件人邮箱地址private static final String PASSWORD ; // qq邮箱的客户端授权码需要发短信获取/*** param to 收件人邮箱地址* param text 邮件正文* param title 标题*//* 发送验证信息的邮件 */public static boolean sendMail(String to, String text, String title) {try {final Properties props new Properties();props.put(mail.smtp.auth, true);props.put(mail.smtp.host, smtp.qq.com);// 发件人的账号props.put(mail.user, USER);//发件人的密码props.put(mail.password, PASSWORD);// 构建授权信息用于进行SMTP进行身份验证Authenticator authenticator new Authenticator() {Overrideprotected PasswordAuthentication getPasswordAuthentication() {// 用户名、密码String userName props.getProperty(mail.user);String password props.getProperty(mail.password);return new PasswordAuthentication(userName, password);}};// 使用环境属性和授权信息创建邮件会话Session mailSession Session.getInstance(props, authenticator);// 创建邮件消息MimeMessage message new MimeMessage(mailSession);// 设置发件人String username props.getProperty(mail.user);InternetAddress form new InternetAddress(username);message.setFrom(form);// 设置收件人InternetAddress toAddress new InternetAddress(to);message.setRecipient(Message.RecipientType.TO, toAddress);// 设置邮件标题message.setSubject(title);// 设置邮件的内容体message.setContent(text, text/html;charsetUTF-8);// 发送邮件Transport.send(message);return true;} catch (Exception e) {e.printStackTrace();}return false;}//随机生成num个数字验证码public static String getValidateCode(int num) {Random random new Random();String validateCode ;for (int i 0; i num; i) {//0 - 9 之间 随机生成 num 次int result random.nextInt(10);validateCode result;}return validateCode;}//测试public static void main(String[] args) throws Exception {//给指定邮箱发送邮件EmailUtil.sendMail(729953102qq.com, 你好这是一封测试邮件无需回复。, 测试邮件随机生成的验证码是 getValidateCode(6));System.out.println(发送成功);} } 4.编写邮件发送方法 package com.lzl.task;import com.lzl.utils.EmailUtil; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.Scheduled;/*** --效率是成功的核心关键--** Author lzl* Date 2023/3/7 11:45*/ Configuration public class TaskEmail {//指定时间进行发送邮件Scheduled(cron 10 49 11 * * ?)public void sendMail(){EmailUtil.sendMail(自己的邮箱qq.com, 效率是成功的核心关键, 测试邮件随机生成的验证码是 EmailUtil.getValidateCode(6));} } 5.开启异步和定时任务 package com.lzl;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling;SpringBootApplication EnableAsync//开启异步 EnableScheduling//开启定时任务 public class QuartzStudyApplication {public static void main(String[] args) {SpringApplication.run(QuartzStudyApplication.class, args);}} 测试 此处不再演示 总结 定时任务在很多业务场景中经常会用到好记性不如烂笔头本篇只是简单的记录一下
http://www.dnsts.com.cn/news/147633.html

相关文章:

  • 不用源码做网站搜索引擎入口大全
  • 重庆永川微网站建设大发快三网站自做
  • 网站备案网站要有内容吗成都华阳有没有做网站的
  • 网站怎么做舆情监测flash个人网站动画
  • 枣阳网站建设建材网站开发
  • 从零开始做一个网站需要多少钱wordpress 优化''
  • 怎么查询菠菜网站做没作弊成都网站建设网站建设
  • 有网站地图的网站工作证模板word
  • 做网站收费吗seo整站优化解决方案
  • 民族服装的网站建设小程序店铺怎么弄
  • 医院网站建设价格哈尔滨网站公司哪家好
  • 中山 做网站海外网站推广公司
  • 新浪做网站wordpress学院主题
  • 缙云建设局网站建筑工程网校排行榜
  • 上传文档到网站上怎么做北京建筑公司有哪些
  • 商务网站开发流程有三个阶段重庆制作网站首页
  • 国内高端品牌网站建设wordpress好还是dz好
  • 公司网站建设项目的成本计划广东省建设行业数据开放平台
  • 网站建设目标规划wordpress登录vip
  • 建设工程查询网站谷歌seo专员
  • wap建站教程东营新闻联播在线直播
  • 五金加工东莞网站建设集美网站建设
  • 网站排名优化软件有哪些外包公司的优势和劣势
  • 西安做网站电话国际大型门户网站
  • 深圳门户网站建设方案宣讲家网站 家风建设
  • 狼们求个没封的免费网站网站开发软件英文版
  • 对单位网站的要求吗建设银行网站看不到e商
  • 新网站快速收录wordpress加入博客
  • 怎么做网站和注册域名开发微信小程序公司
  • 青岛网站设计建立公司建设网页制作