首页 > 其他分享 >Quarkus系列——Vert.x应用(番外篇)

Quarkus系列——Vert.x应用(番外篇)

时间:2023-04-03 23:23:55浏览次数:32  
标签:缓存 Vert 番外篇 Quarkus native verticle 加载

前言

由于客观原因(穷)导致博客首页加载时间有点慢,大概需要3秒才能加载出服务端渲染的基础页面。所以想着能够提高首页加载速度,我决定在nginx上做个缓存。为了不影响内容的及时更新,我设置的缓存的有效期仅为10分钟。这样导致在缓存过期后第一次加载页面会cache miss,所以为了解决这个问题。我决定写个程序定时去请求一次,以达到缓存续约,由于我nginx上没有装清理缓存的插件,所以只能做到让它失效后再重新缓存。

环境准备

由于这个功能比较简单,所以我准备直接用Quarkus实现,然后打包成native程序。不涉及到web服务,所以我们这里都不用选择。

Vert.x应用

Quarkus与Spring类似都支持通过@Scheduled(cron="0 15 10 * * ?")的方式来实现定时任务,但是我这里想介绍一下如何在Quarkus中使用Vert.x所以不用它提供的这种方式而是用vertx.setPeriodic() 来实现。

Eclipse Vert.x 是JVM上构建 响应式 应用的工具。 响应式应用既可以随着工作负载的增长而 扩展 ,又可以在出现故障时 弹性回复 。 响应式应用是 即时响应 的,因为它能有效利用系统资源并保护自身免受错误影响,从而使延迟可控

我的想法是在Quarkus启动的时候部署一个verticle,然后在这个verticle中执行请求。

我们先定义一个自己的verticle,这个verticle就是我们主要的业务代码,每一分钟请求一次首页。

然后我们在Quarkus启动的时候部署这个Verticle,@Observes StartupEvent ev,通过这个注解可以让我们在容器启动的时候执行一些操作。

值得注意的是我们会发送https的请求,所以在打包成native文件的时候需要在配置文件中开启quarkus.ssl.native=true

自此我们的编码工作已经完成来,在服务器上编译运行查看结果:

后记

想要实现我的需求有很多方式,直接在服务器上写定时任务也可以,我之所以通过编码的方式主要还是为了介绍一下如何在Quarkus中使用Vert.x。

标签:缓存,Vert,番外篇,Quarkus,native,verticle,加载
From: https://www.cnblogs.com/loveletters/p/QuarkusVertx.html

相关文章

  • Quarkus系列—— RESTEasy与SpringMVC(二)
    简述RestEasy在Quarkus中的作用跟SpringMVC在SpringBoot中类似。简介RESTEasy是JBoss的一个开源项目,提供各种框架帮助你构建RESTfulWebServices和RESTfulJava应用程序。我们以第一部分的代码为例来介绍如何通过RESTEasy的各种注解来开发Web应用,因为RESTEasy实现了JAX......
  • Quarkus系列——快速入门(一)
    介绍Quarkus在日常开发中是可以替代SpringBoot的。Quarkus是RedHat为GraalVM和HotSpot量身定制用程序。特点是启动超快,内存极低,并且在容器编排平台(如Kubernetes)中提供了近乎即时的向上扩展和高密度的内存利用率。并且基于GraalVM,为我们提供了编译成native程序的能力。如果......
  • Vertica中的group_concat函数
    MySQL中一个很实用的函数:group_concat,在vertica中,有一个功能相同的函数:LISTAGG。Vertica官方参考文档用法:selectclient_id,LISTAGG(prod_code)frombdware.test1groupbyclient_id默认最大返回长度是1024,如果超出1024,默认策略是报错,可以手动调整为截取模式。如下:s......
  • NLP 开源形近字算法之相似字列表(番外篇)
    创作目的国内对于文本的相似度计算,开源的工具是比较丰富的。但是对于两个汉字之间的相似度计算,国内基本一片空白。国内的参考的资料少的可怜,国外相关文档也是如此。本项......
  • NLP 开源形近字算法之相似字列表(番外篇)
    创作目的国内对于文本的相似度计算,开源的工具是比较丰富的。但是对于两个汉字之间的相似度计算,国内基本一片空白。国内的参考的资料少的可怜,国外相关文档也是如此。本项......
  • git reset, git checkout, git revert 区别 (译)
    题记:团队中大多数成员使用sourceTree和github两款git工具,然而大家对于图形化工具提供的reset,checkout,revert功能点并不是很了解,甚至于混淆,然后凭借猜测去使用。......
  • convert RGB565 to RGB666
    RGB(565)isconvertedtoRGB(666)byappendingtheMSBsR5[4]respectivelyB5[4]astheloworderbit,whileG6[5:0]remainsuntouched:R6[5:0]=(R5[4:0]<<1......
  • spring,springBoot配置类型转化器Converter以及FastJsonHttpMessageConverter,StringHt
     spring,springboot等框架项目通过@RequestBody,@ResponseBody完成请求报文到响应对象及响应对象到响应报文的转换,其底层是通过消息转换器完成消息之间的转换,包括格式转化......
  • AIG(And-Inverter Graph)基本概念
    目录1AIG概述2AIG约简2.1StructuralHash一级strash两级strash2.2FunctionalReduce逻辑锥(cone)随机仿真SAT与等价类检查参考文献1AIG概述在前面的博文《Quine-McClu......
  • convert
     defconvert(size,box):dw=1./(size[0])dh=1./(size[1])x=(box[0]+box[1])/2.0-1y=(box[2]+box[3])/2.0-1w=box......