以前只做过简单的定时任务
现在有这么一个需求,特来请教一下
- 调度任务数据库存储,web 页面维护
- 需要立即执行
- 配置重试机制,比如运行失败,如果有配置了重试的,在多久以后重试一次
- 暂停
- 启动
以前只做过简单的定时任务
现在有这么一个需求,特来请教一下
我对 JeeSite 改造版加入了 Quartz 功能,应该符合你的需求, 地址 https://github.com/LYHFUU/jeesite
@participants 各位大佬,又来打扰大家了, 我现在定时任务基本的需求能解决,但是又发现一个新的问题。
quartz 数据库存储模式,已经注册到 quartz 队列中的任务,会在数据库存储,服务器重启以后还是会按照之前的周期运行,
但是存在一个问题,我在自定义的任务表定义自己的任务。在启动的时候 遍历自己的数据注册到 quartz 中,假如直接在数据库删除了自定义的任务,服务器不管重不重启,那个任务已经注册到 quartz 中了,这种问题怎么解决,目前就是直接在数据库删除了的话,任务还会运行
如果通过接口删除的时候,可以手动 remove,但是数据库删除就不行了
目前我能想到的就是
1.在启动初始化的时候把 队列清空,但是这就与 quartz 的数据库模式初衷相违背了
2.任务执行的时候再去数据库自定义的表查询一次,查不到就停止 并 remove 。
配置是没错,但是假如我的任务基本信息存在数据库中,quartz 启动的时候,将我配置的任务 添加到 quartz 队列,我再从数据库删除我自己的任务信息,这条在 quartz 中的任务到时间了还是会继续运行的啊
目前采用这种方式了,不知道合理不合理,在任务每次执行的时候都去数据库查询以下这条任务在自定义的表里还在不,不在电话就调用删除方法,删除方法中会 删除掉 quartz 队列里面的任务。
@participants 我发现我用 springboot 写好的 demo 都没问题了,但是集成到我们到项目里面就不行了,初始化任务可以,但是 到点不执行…… ,我们项目是使用 dubbo 的分布式项目,我只能将定时任务写在 service 层,我猜是因为 service 注册服务到 zookeeper,quartz 其实没有一个 持续的状态在运行 。。。大佬们有什么 方法吗?
不晓得你这个是什么情况,我前两天的项目也是在 dubbo 当中用的 quartz , 具体业务是:创建一个定时任务,进行数据采集,采集完毕后,调用数据校验服务进行校验。用的是 dubbo2.6 注册中心 zk
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。
机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。
iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。
Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。
Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。
i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。
Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。
百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。
互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。
SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。
一些有用的避坑指南。
TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。
快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。
持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。
正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。
深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。
GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。
Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。
钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。
Open Source, Open Mind, Open Sight, Open Future!
Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。
A second brain, for you, forever.
Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。