Cron表达式X分钟执行一次的设计缺陷。SQL JOIN的设计缺陷。在线Cron表达式网站的缺陷。Spring 定时任务的年问题。

news2024/9/23 1:21:08

Cron

  • Cron表达式
    • 定时任务
    • 计划任务
Chronological

英
/ˌkrɒnəˈlɒdʒɪk(ə)l/

adj.
按发生时间顺序排列的;(年龄)按时间计算的

1. 月 周设计精妙吗?

  • 学习
0/5 * * * * ? *
秒 分 时 日 月 周 年

1. 年一般省略。为:0/5 * * * * ?

2. 日:可以叫做天都行。总之就是:天月,如:1-31。1月中最多31天。

3. 日 和 周 是冲突的。必然有一个设置为 ?
因为现实世界,如:本月1号,又是周一,非常不可能。
反之也是:周一,又要本月1号,也不可能
  • 秒分时 日月,为从小到大。
  • 周年,就当周年庆送的吧。

2. 百度搜索 在线Cron表达式网站的问题

  • 周页面 运行结果,应该都有Bug

排行第一的:https://cron.qqe2.com/

  • 分钟—从X分钟开始,每X分钟执行一次,存在Bug (下面的例子是正确的)
    • 生成的错误:Cron表达式为:* 1/5 * * * ? *
    • 所以:最新10次运行结果,也是错误 (变成每秒执行一次)
    • 排行第五的:http://c.jsrun.net/app/cron,同样的Bug
      在这里插入图片描述

排行第二的:https://www.pppet.net/

  • X分钟执行一次逻辑正确:0 0/2 * * * ?

  • https://www.itgongju.com/cron 排行第三的,X分钟执行一次逻辑正确

排行第四的:https://tools.kalvinbg.cn/dev/cron

  • 只点击:分钟页面,存在各种Bug

3. 关于 X分钟执行一次 * 开头

  • 两种正确写法:
    • 只要是0开头的,都是正确的吧
0 0/3 * * * ?
0 */4 * * * ?
  • *开头都是错误的。 尽管这是:Cron表达式网站 生成的

  • *是任意秒,叠加分钟的限制,本身就是个悖论?还是Java的spring @Scheduled(cron = “”)的问题

    • 想要X分钟执行一次,结果是1秒执行一次。错其一。

    • 1秒执行一次,是不确定性的,

      • 比如:* 0/6,就是 5以上,就会一次都不执行。

      • 即:设置 大的数后,也不会一秒执行一次。

        • * 1/2 * * * ? 设置这样比较小的数,可以1秒执行一次
          
* 0/4 * * * ?
* */33 * * * ?
* 1/12 * * * ?

4. Spring 定时任务的年问题

  • Java的spring @Scheduled(cron = “”)的 存在,不支持年的问题

    • 即随意一个 cron表达式,带年的 都会造成 整个程序无法启动
    0/55 * * * * ? *
    
    //秒 分 时 日 月 周 年
    //必须是 6个字段。
    Cron expression must consist of 6 fields (found 7 in "0/55 * * * * ? *")
    

sql JOIN连接只支持最近的表的连接

  • s2 距离 s3 最近,可以使用。
SELECT
	* 
FROM
	student s1,
	student s2
	LEFT JOIN student s3 ON s2.id = s3.id
-- WHERE s1.id = s2.id
  • s1 不是离 s3最近的表,不能使用
	LEFT JOIN student s3 ON s1.id = s3.id
	
	报错:
	> 1054 - Unknown column 's1.id' in 'on clause'

1. 只支持最近的表 不包括 前面的JOIN

SELECT
	* 
FROM
	student s1
	LEFT JOIN student s2 ON s1.id= s2.id -- 这里 s2,不能使用s3连接。ON s3.id= s2.id
	LEFT JOIN student s3 ON s1.id = s3.id -- S3 依然可以使用 S1

如果是内连接,还是使用 where条件连接吧,随意使用 表都能连接

SELECT
	* 
FROM
	student s1,
	student s2,
	student s3 
WHERE
	s3.id = s1.id

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/505982.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Live800:服务经济时代,企业如何满足客户需求?

在互联网与市场经济的催化下,我们正在从产品经济时代过渡到服务经济时代。在产品经济时代,企业关注的核心是质量和成本;而在服务经济时代,如何面向客户,满足客户需求则成为企业建立核心竞争力的关键。 具体来说&#x…

【精选】关于洪涝灾害智慧水利和人工智能大模型的解决方案2023版

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除 智慧水利平台 实现“全局一盘棋”的智慧水利综合管理,通过“一图、一库、一平台”结合水利大数据、数字孪生与人工智能,为水利工作提供有力的管理抓手&…

SingleR --细胞注释

文章目录 briefExample使用内置的 references使用其他注释好的数据集作为 reference singleR还提供了注释诊断的方法 brief Example The celldex package provides access to several reference datasets (mostly derived from bulk RNA-seq or microarray data)。 The Human…

《狂飙》原著来了,邀你重新见证

2023年的开篇十分精彩且丰富,经历过生活的不幸,新的一年万物复兴,每个人心底那颗躁动的心又重新释放,希望新的开始不负所望,年末复盘时所得皆所愿! 开篇 开年影视第一炮,炸出了所有人被压抑的内…

AIGC技术发展和应用方向

AIGC(Artificial Intelligence Generated Content)是指通过人工智能技术生成的各种文本、图像、音频和视频等多媒体内容。AIGC技术是机器学习和自然语言处理等技术的结合,通过对海量数据的学习和分析,可以让计算机模拟人类的创造力…

Spring Boot 单体应用一键升级成 Spring Cloud Alibaba

作者:十眠 背景 随着 Apache Dubbo、Nacos 以及 Spring Cloud 等服务框架的流行,越来越多的企业开始采用微服务架构来构建其应用程序。微服务架构使企业能够将其应用程序拆分成多个小型服务,这些服务可以独立部署和扩展。这种架构模式也使企…

怎么给pdf文件添加水印

怎么给pdf文件添加水印?PDF文件的应用比较广泛,大家喜欢将各种办公资料和文档转换成PDF格式,为什么呢?因为pdf文件具有比较强的稳定性而且不利于编辑修改,所以更利于保存和转发。有时候我们会在工作中花费大量时间制作…

第1天学习Docker——Docker简介

一、Docker是什么? Docker 是一个开源的应用容器引擎,基于 Golang 语言开发,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 服务器。容器是一个沙箱机制,相互之间不会…

神经网络语言模型(NNLM)

神经网络语言模型【NNLM】 1 为什么使用神经网络模型?2 什么是神经网络模型?3. 代码实现3.1 语料库预处理代码3.2 词向量创建3.3 NNLM模型类3.4 完整代码 1 为什么使用神经网络模型? 解决独热编码无法解决词之间相似性问题 使用神经网络语言…

带稀缺注释的动物姿态估计CVPR2023

由于缺乏标记数据,动物姿态估计是一项重要但未被充分探索的任务。作者用稀缺的注释(scarce annotation)来处理动物姿态估计,其中只有一小部分标记数据和大部分未标记图像可用。并且,作者提出了ScarceNet,这…

Presto

Presto Presto基本介绍 前言 Presto是一款Facebook开源的MPP架构的OLAP查询引擎,可针对不同数据源执行大容量数据集的一款分布式SQL执行引擎。因为工作中接触到Presto,研究它对理解SQL Parser、常见算子的实现(如SQL中table scan,join,agg…

MySQL行锁、表锁间隙锁

事务隔离级别的实现原理:锁MVCC 表级锁&行级锁 表级锁:对整张表加锁。开销小,加锁快,不会出现死锁;锁粒度大,发生锁冲突的概率高,并发度低。 行级锁:对某行记录加锁。开销大&a…

论 spring 的三级缓存

论 spring 的三级缓存 预备知识 bean的生命周期 bean 的生命周期 为何会出现循环引用 这个问题只是出现在spring 容器的机制中,其实我们代码中很简单就解决了。 假设A 对象里需要注入一个B属性,B 对象里面需要注入一个A 属性。根据Bean 的生命周期&…

【原创】运维工程师涨薪计划,chatGPT帮你做规划

文章目录 1、运维工程师怎么涨薪呢?a)加大深度b)加大广度 2、运维工程师何处去呢?3、chatGPT告诉你3年、5年、10年运维和开发的现状;有运维经验的工程师,搞开发好吗薪资会有显著提升吗以数据证明&#xff0…

校园食堂明厨亮灶AI分析系统 yolov5

校园食堂明厨亮灶AI分析系统通过yolov5网络模型技术,校园食堂明厨亮灶监控分析模型算法针对校园餐厅后厨不按要求戴口罩、不穿厨师帽、陌生人员进入后厨、厨师不穿厨师服、上班时间玩手机、老鼠识别等行为自动识别抓拍告警。Yolo算法,其全称是You Only L…

电脑缺少msvcp140.dll怎么办,缺少msvcp140一键修复方法

电脑缺少msvcp140.dll怎么办?这个问题相信不少小伙伴都遇到过,msvcp140.dll文件是很多软件跟游戏运行必须用到的文件,如果丢失或者损坏,很多软件都会无法打开运行。其实知道知道方法,修复起来其实也不会很难&#xff0…

ModelViewSet额外路由参数 与 ADMIN事件触发

ModelViewSet额外路由参数 用了DefaultRouter,那么在URL匹配时带路径参数,只有update、delete、retrieve能带,关键是匹配pk还是写死的,我们需要对任意参数,同时还能修改方法命名。 咋搞?很简单。比如我们…

JS案例:前端Iframe及Worker通信解决思路

目录 前言 Iframe通信 Worker通信 实现思路 实现过程 MessageCenter类 IPC类 Server类 Client类 PeerToPeer 功能演示 基础功能 父子通信 兄弟通信 父子兄弟通信 其他功能 函数调用 索引标识 卸载页面 重置页面 批量执行 批量操作 总结 前言 在前端开发…

虚拟机VMware Tools安装步骤

Vmware tools是虚拟机中一款超级增强工具,可以让我们更加方便使用虚拟机,能实现主机与虚拟机之间的文件共享,这篇文章主要介绍了虚拟机VMware Tools安装步骤,需要的朋友可以参考下 本人安装VMware Tools 的需求是 在Linux虚拟机和我的Windo…

Linux学习记录——이십삼 进程信号(2)

文章目录 1、可重入函数2、volatile关键字3、如何理解编译器的优化4、SIGCHLD信号 1、可重入函数 两个执行流都执行一个函数时,这个函数就被重入了。比如同一个函数insert,在main中执行时,这个进程时间片到了,嵌入了内核&#xf…