热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

taskctl控制容器之定时器个人理解

昨天在用taskctl的定时器遇到些问题,暂停了定时器,去修改了定时器调用的作业,再取消暂停的时候,发现取消暂停的时候,该作业重复调用了很多次。后来在群中群主的详细解答下,终于弄了个半懂,在

昨天在用taskctl的定时器遇到些问题,暂停了定时器,去修改了定时器调用的作业,再取消暂停的时候,发现取消暂停的时候,该作业重复调用了很多次。后来在群中群主的详细解答下,终于弄了个半懂,在这里也分享给大家。

       Taskctl的控制容器分为两种,一种是流程(子流程),一种是定时器。TASKCTL各种控制容器的区别(http://www.taskctl.com/forum/detail_84.html)。其中有关定时器的资料较流程定时器而言少很多。定时器内部是无序的任务集,适合处理定频触发的任务;不像流程那样是一个有序的任务集合,适合处理周期性的任务流。

       只所以选择调度工具,而不用系统的crontab之类的东西,其实有一部分原因是因为crontab是不支持自动判断上一次是否执行完了,而是到点执行再次执行,有可能上一次的运行还没有结束,这个时候我们通常的需求都不是这样的。

       Taskctl的定时器有三个属性,在范例中说的很清楚,我这里就直接摘抄一下

    这里要弄清楚第二个和第三个参数合起来表达了频率,但是第一个参数不是起始时间,而是基准时间。Taskctl的更加当前时间和基准时间的差值是否是间隔频率的整数倍来决定是不是该执行的,如果第一个参数设置的是*,那默认的是启动定时器是,第一次执行定时任务的时间为基准时间。举例100101 h 1 这个和范例中最后一个的区别是间隔为1小时,因为第一个参数不是起始时间,只是基准时间,所以090101的时候,该任务同样会执行,而不是从每天10点1分1秒开始,每隔一小时运行一次;而100101 d 1,是每天10点1分1秒启动是因为间隔是天,这个地方一定要认真的理解。

       当执行作业时长超过频率间隔时,后面的调度会排队,等前一次执行完了,在马上执行新的批次。假如一个作业开始执行1分钟,间隔是5分钟,之前一直正常,当某一个批次跑了21分钟时,这个时候这个作业在栈中还有三次需要被调用,现在恢复了只用执行1分钟时,会依次调用四次。

       情况二,也就是我遇到的情况,假如我我有一个作业间隔是10分钟运行一次,每一次运行几秒,最近一次正常的运行的10点钟,现在因为作业要修改下,我暂停了定时器,在11点钟的时候,作业修改好了,我此时取消暂停,这个时候该定时作业会运行6次(每10分钟一次的调用都在栈中)。有时候可能是需要这种逻辑的,但是我此时是不需要这么做。那这种情况就应该是停止定时器而不是暂停定时器。停止定时器,会把当前定时器中所有还没有做完的在栈中存着调度计划都清楚掉。

推荐阅读
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 本文详细介绍了 Flink 和 YARN 的交互机制。YARN 是 Hadoop 生态系统中的资源管理组件,类似于 Spark on YARN 的配置方式。我们将基于官方文档,深入探讨如何在 YARN 上部署和运行 Flink 任务。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 本文详细介绍了美国最具影响力的十大财团,包括洛克菲勒、摩根、花旗银行等。这些财团在历史发展过程中逐渐形成,并对美国的经济、政治和社会产生深远影响。 ... [详细]
  • 本文详细介绍了VMware的多种认证选项,帮助你根据职业需求和个人技能选择最合适的认证路径,涵盖从基础到高级的不同层次认证。 ... [详细]
  • 本文将深入探讨如何在不依赖第三方库的情况下,使用 React 处理表单输入和验证。我们将介绍一种高效且灵活的方法,涵盖表单提交、输入验证及错误处理等关键功能。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 科研单位信息系统中的DevOps实践与优化
    本文探讨了某科研单位通过引入云原生平台实现DevOps开发和运维一体化,显著提升了项目交付效率和产品质量。详细介绍了如何在实际项目中应用DevOps理念,解决了传统开发模式下的诸多痛点。 ... [详细]
  • Kubernetes 持久化存储与数据卷详解
    本文深入探讨 Kubernetes 中持久化存储的使用场景、PV/PVC/StorageClass 的基本操作及其实现原理,旨在帮助读者理解如何高效管理容器化应用的数据持久化需求。 ... [详细]
  • 本文作者分享了在阿里巴巴获得实习offer的经历,包括五轮面试的详细内容和经验总结。其中四轮为技术面试,一轮为HR面试,涵盖了大量的Java技术和项目实践经验。 ... [详细]
author-avatar
奔跑的饼干的饼干桶_698
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有