刚做的win7系统连上网站没网揭阳网站建设模板

bicheng/2026/1/16 2:04:02/文章来源:
刚做的win7系统连上网站没网,揭阳网站建设模板,国外设计师个人网站,怎么查网站备案信息查询在spring框架中#xff0c;对于简单的定时任务#xff0c;可以使用 Scheduled 注解实现#xff0c;在实际项目中#xff0c;经常需要动态的控制定时任务#xff0c;比如通过接口增加、启动、停止、删除定时任务#xff0c;动态的改变定时任务的执行时间等。 我们可以通过…在spring框架中对于简单的定时任务可以使用 Scheduled 注解实现在实际项目中经常需要动态的控制定时任务比如通过接口增加、启动、停止、删除定时任务动态的改变定时任务的执行时间等。 我们可以通过编码的方式动态控制定时任务具体的代码参照 示例项目 https://github.com/qihaiyan/springcamp/tree/master/spring-dynamic-scheduler 一、概述 在spring框架可以通过 CronTask 和 TaskScheduler 动态控制定时任务实现定时任务的动态更新比如修改定时任务的执行时间这个是 Scheduled 无法实现的。采用编码控制动态任务的方式我们还可以把动态任务执行信息保存到数据库中通过数据库里的任务配置数据来动态控制定时任务也可以通过接口来动态控制定时任务。 二、配置定时任务 首先同 Scheduled 注解的方式一样动态控制定时任务也需要使用 EnableScheduling 注解来开启定时任务功能 然后通过实现 SchedulingConfigurer 接口来对动态任务进行配置 Component public class MyScheduler implements SchedulingConfigurer {private ScheduledTaskRegistrar taskRegistrar;private final ConcurrentHashMapLong, ScheduledFuture? scheduledFutures new ConcurrentHashMap();Overridepublic void configureTasks(NonNull ScheduledTaskRegistrar taskRegistrar) {ThreadPoolTaskScheduler threadPoolTaskScheduler new ThreadPoolTaskScheduler();threadPoolTaskScheduler.setPoolSize(10);// Set the pool of threadsthreadPoolTaskScheduler.setThreadNamePrefix(sys-scheduler);threadPoolTaskScheduler.initialize();this.taskRegistrar taskRegistrar;this.taskRegistrar.setTaskScheduler(threadPoolTaskScheduler);}PreDestroypublic void destroy() {this.taskRegistrar.destroy();} }通过上面的代码我们就启用了动态任务的基本能力为动态任务指定了执行线程池。 三、动态更新定时任务 更新定时任务通过 CronTask 和 TaskScheduler 来实现我们新增一个注册定时任务的方法 public void registerTask(TaskData taskData) {//如果配置一致则不需要重新创建定时任务if (scheduledFutures.containsKey(taskData.getId()) cronTasks.get(taskData.getId()).getExpression().equals(taskData.getExpression())) {return;}//如果策略执行时间发生了变化则取消当前策略的任务if (scheduledFutures.containsKey(taskData.getId())) {scheduledFutures.remove(taskData.getId()).cancel(false);cronTasks.remove(taskData.getId());}CronTask task new CronTask(taskData, taskData.getExpression());TaskScheduler scheduler taskRegistrar.getScheduler();if (scheduler ! null) {ScheduledFuture? future scheduler.schedule(task.getRunnable(), task.getTrigger());if (future ! null) {scheduledFutures.put(taskData.getId(), future);}}}我们新增了一个 registerTask 方法用于注册定时任务入参中 TaskData 是定时任务的配置数据为了简单我们把配置数据和执行代码放到了一起 Slf4j Data Entity public class TaskData implements Runnable {IdGeneratedValue(strategy GenerationType.IDENTITY)private Long id;private String name;private String expression;TransientOverridepublic void run() {log.info({} is running with expression {}, this.getName(), this.getExpression());} }核心代码是创建一个 CronTask 对象该对象包含两个参数Runnable 方法和 cron 表达式。 CronTask 对象创建好后通过 ScheduledTaskRegistrar 对定时任务进行注册注册完成后定时任务就会在cron表达式指定的时间点开始执行了。 执行的代码就是 Runnable 参数指定的方法。 四、动态停止定时任务 为了能够动态停止定时任务我们在注册定时任务时把注册结果放到了一个Map中 private final ConcurrentHashMapLong, ScheduledFuture? scheduledFutures new ConcurrentHashMap();ScheduledFuture? future scheduler.schedule(task.getRunnable(), task.getTrigger());if (future ! null) {scheduledFutures.put(taskData.getId(), future);}新增停止定时任务的方法 public void stop(Long id) {if (scheduledFutures.containsKey(id)) {scheduledFutures.remove(id).cancel(false);}}该方法需要传入定时任务的id由于我们把定时任务信息保存到了 scheduledFutures 这个Map中所以可以根据任务id参数查找到对应的定时任务信息然后调用对应的 cancel方法来停止定时任务。 五、通过接口控制定时任务 通过上面的步骤我们已经具备了动态控制定时任务的基本能力下面增加接口来控制定时任务 EnableScheduling SpringBootApplication RestController public class DemoApplication {Autowiredprivate MyScheduler myScheduler;Autowiredprivate TaskDataRepository taskDataRepository;public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}RequestMapping(/register)public TaskData register(String name,RequestParam(name expression, required false, defaultValue 0/1 * * * * ?) String expression) {TaskData taskData taskDataRepository.findOneByName(name).orElse(new TaskData());taskData.setName(name);taskData.setExpression(expression);taskData taskDataRepository.save(taskData);myScheduler.registerTask(taskData);return taskData;}RequestMapping(/stop)public void stop(Long id) {taskDataRepository.findById(id).ifPresent(taskData - {myScheduler.stop(id);});} }我们提供了 register 和 stop 两个接口这两个接口会在改变动态任务执行数据时先将数据保存到数据库中对定时任务进行持久化避免程序重启后定时任务都丢失。 程序启动后我们首先调用 register 接口新增一个定时任务 http://localhost:8080/register?nametest接口调用后在日志中可以看到定时任务开始执行了 2024-01-07T18:02:09.00308:00 INFO 23012 --- [ sys-scheduler5] c.s.springdynamicscheduler.TaskData : test is running with expression 0/1 * * * * ? 2024-01-07T18:02:10.00508:00 INFO 23012 --- [ sys-scheduler3] c.s.springdynamicscheduler.TaskData : test is running with expression 0/1 * * * * ? 2024-01-07T18:02:11.01208:00 INFO 23012 --- [ sys-scheduler3] c.s.springdynamicscheduler.TaskData : test is running with expression 0/1 * * * * ?再调用 stop 接口通过日志可以发现定时任务停止了执行 http://localhost:8080/stop?id1

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

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

相关文章

可以不进网站开发app吗网站系统优化

快速撰写高质量技术文章的方法论 在技术写作领域,尤其是面对紧迫的截止日期时,快速而高效地撰写高质量文章是一项重要技能。本文将为您提供一套方法论,帮助您在短时间内产出优质的技术文章。 1. 明确主题和目标读者 首先,明确文…

公司官方网站建设电脑店免费建站

第一次尝试用思维导图记笔记,感觉还不错~~~不过还是改不了我读书笔记写成抄书笔记的毛病 。 因为开始学JS的时候,一般浏览器就已经支持ES6了,所以比较喜欢使用ES6语法,let,>等,文中代码不是抄书的&#…

石家庄大型网站设计公司温岭 网站建设

概念:Vue组件实例在创建时要经历一系列的初始化步骤,在此过程中Vue会在合适的时机,调用特定的函数,从而让开发者有机会在特定阶段运行自己的代码,这些特定的函数统称为:生命周期钩子。 规律: 生…

如何用rp做网站凯里市住房和城乡建设局网站

今天的主人公名为——Melang。 这是一款使用C语言开发的“新”的脚本语言,然而其已经默默问世了6年之久。 下面笔者就带你走进Melang world。 What is Melang Melang是一款协程并发脚本语言。它是一款解释型,而非编译型语言。 在Melang中&#xff…

网站建设与开发教学大纲深圳网站制作设计

1 找出字符串的可整除数组 一个整数可表示为 a10b; 常用取模公式:(a10b)%m(a%m10b)%m 由上式可得:当前字符串所代表的数字,能否被 m 整除。等价于前一个字符串与 m 的余数当前数字的和,这个和能否被 m 整除。 例如&…

东莞市建设网站苏州建网站公司

用户:管理员、教师、学生 基础功能:管理课表、管理机房情况、预约机房预约;权限不同,预约类型不同,教师可选课堂预约和个人;课堂预约。 在实验室上机前,实验室管理员需要对教务处发来的上机课表…

网站开发 图片哪家网站遴选做的比较好

查看所有支持的编码器与解码器 ffmpeg -codecs 只查看所有编码器: ffmpeg -encoders 只查看所有解码器: ffmpeg -decoders 只查看H264编码器: ffmpeg -h encoderh264 只查看H264解码器: ffmpeg -h decoderh264 查看所有支持的封装: ffmpeg -muxers 查看所有支持的解封装…

logo注册seo竞价

1、查看mysql自增值和偏移量 show variables like %increment%; auto_increment_increment1 -- 自增倍数是1 auto_increment_offset1 -- 偏移量是1 上边这是一般的设置,每次每次主键自增的倍数是1,偏移量是1 例如:插入第n条记录&#x…

怎样把自己的网站进行推广网站建设服务器要求

大家好,今天我们将深入探讨人工智能如何彻底改变我们的生活方式,领略未来的无限可能性。 1. 医疗革新:AI担任超级医生 医疗领域是AI最引人注目的战场之一。智能医学影像诊断系统,不仅能够精准识别病变,还能辅助医生提…

建站系统哪个好怎样做推广才有效

熵 (Entropy):用于评估信息的随机性,常用于决策树和聚类算法。交叉熵 (Cross-Entropy):用于衡量两个概率分布之间的差异,在分类问题中常用。 信息论作为处理信息量和信息传输的数学理论,在机器学习中具有广泛的应用。…

做徽章的网站网站开发文档需求分析

01 万德 招聘岗位:高级网络工程师 职责描述: 1、项目交付:项目管理和交付,包括项目前期的规划、实施以及后期的运维支持、项目验收等。 2、技术支持:为客户及合作伙伴提供网上问题远程和现场支持;对公司内…

网页与网站建设重庆建筑招聘网

人人都讨厌代码腐化,人人都在腐化代码!本文介绍app消息推送开权提醒能力的服务端实现,并说明如何通过手搓一个简易的流程引擎来实现横向的业务场景隔离,纵向的业务流程编排,从而灵活支持业务需求,抑制代码腐…

网站建设合同 附件礼县建设局网站

刚刚接触docker,真的好麻烦啊,不明白为什么要选择docker,我都搞了两天还在搭环境,又告诉我Windows版本过低不适配docker,转而在Ubuntu里装docker,然后MySQL、php、Nginx又得重新装一遍。。。好麻烦啊 1 用…

云服务器做淘客网站部门网站建设目的

欢迎关注公众号:数据运营入表资产化服务 获取更多算法源码材料 2023数据资源入表白皮书,推荐系统源码下载-CSDN博客 用友BIP数据资产入表解决方案白皮书,推荐系统源码下载-CSDN博客 我们都知道一般单值类别特征加入到CTR预估模型的方法是先…

建网赌网站流程工程项目管理软件app

** 十二届蓝桥杯Python组3月中/高级试题 ** 初始条件:在第1分钟时,已经有一个病毒粒子存在,因此第1分钟时的病毒粒子总数为1。 繁殖规律:从第5分钟开始,每分钟都会繁殖出一个新的病毒粒子。而新产生的病毒粒子也会…

兴义住房和城乡建设局网站新品发布会现场

在Vue中&#xff0c;子组件向父组件传递参数可以通过自定义事件和props属性来实现。下面是一些关键代码示例&#xff1a; 1. 使用自定义事件&#xff1a; 在子组件中&#xff0c;通过 $emit 方法触发一个自定义事件&#xff0c;并传递参数。 <template><button cli…

多行业品牌企业公司网站模板可以做热图的在线网站

我需要从我的模块中调用Python函数并为其设置两个参数&#xff1a;int和array。在现在我在调用这个函数的时候遇到了segfault&#xff0c;我不知道我做错了什么。有人能指出我的错误在哪里吗&#xff1f;在函数在我的Python模块中应用程序副本. 如果我从Python代码调用它&#…

做一个网站要花多少钱长沙建一个网站大概要多少钱

一、微服务多节点批量应该怎么设计&#xff1f; 1、异步任务分类&#xff1a; 周期性定时任务调度任务批量任务 2、需要考虑并解决的问题&#xff1a; 2.1、避免同一任务同时被多个节点捞取。 1&#xff09;数据库的行级锁 2&#xff09;redis分布式锁 3&#xff09;quartz…

什么网站可以做旅行行程单wordpress 婚纱主题

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”现在是&#xff1a;2021年10月23日22:02:41。于我来说&#xff0c;最感兴趣的莫过于上课和写代码了。最近一下在做一个项目&#xff0c;可能是前期数据库设计的不是很好&#xff0c;导…

网站数据库空间大小wordpress如何添加注册登录界面

一、邮件发送的扩展 关于如何找到flask发送邮件的插件&#xff1f;&#xff0c;上一篇已经分享了如何找到第三方插件&#xff0c;也找到了插件flask-mail的使用文档&#xff0c;那我们就来实战吧 二、根据文档&#xff0c;总结发送邮件的流程 从文档中可以总结出发送邮件的步…