热门标签 | 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分钟一次的调用都在栈中)。有时候可能是需要这种逻辑的,但是我此时是不需要这么做。那这种情况就应该是停止定时器而不是暂停定时器。停止定时器,会把当前定时器中所有还没有做完的在栈中存着调度计划都清楚掉。

推荐阅读
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文介绍如何在 Android 中通过代码模拟用户的点击和滑动操作,包括参数说明、事件生成及处理逻辑。详细解析了视图(View)对象、坐标偏移量以及不同类型的滑动方式。 ... [详细]
  • 2023 ARM嵌入式系统全国技术巡讲旨在分享ARM公司在半导体知识产权(IP)领域的最新进展。作为全球领先的IP提供商,ARM在嵌入式处理器市场占据主导地位,其产品广泛应用于90%以上的嵌入式设备中。此次巡讲将邀请来自ARM、飞思卡尔以及华清远见教育集团的行业专家,共同探讨当前嵌入式系统的前沿技术和应用。 ... [详细]
  • Android 九宫格布局详解及实现:人人网应用示例
    本文深入探讨了人人网Android应用中独特的九宫格布局设计,解析其背后的GridView实现原理,并提供详细的代码示例。这种布局方式不仅美观大方,而且在现代Android应用中较为少见,值得开发者借鉴。 ... [详细]
  • 探讨如何高效使用FastJSON进行JSON数据解析,特别是从复杂嵌套结构中提取特定字段值的方法。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文详细介绍了W3C标准盒模型和IE传统盒模型的区别,探讨了CSS3中box-sizing属性的使用方法及其在布局中的重要性。通过实例分析,帮助读者更好地理解和应用这一关键概念。 ... [详细]
  • 深入了解 Windows 窗体中的 SplitContainer 控件
    SplitContainer 控件是 Windows 窗体中的一种复合控件,由两个可调整大小的面板和一个可移动的拆分条组成。本文将详细介绍其功能、属性以及如何通过编程方式创建复杂的用户界面。 ... [详细]
  • 本文探讨了在Linux系统上使用Docker时,通过volume将主机上的HTML5文件挂载到容器内部指定目录时遇到的403错误,并提供了解决方案和详细的操作步骤。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 作为一名专业的Web前端工程师,掌握HTML和CSS的命名规范是至关重要的。良好的命名习惯不仅有助于提高代码的可读性和维护性,还能促进团队协作。本文将详细介绍Web前端开发中常用的HTML和CSS命名规范,并提供实用的建议。 ... [详细]
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社区 版权所有