任务调度SchedulerX

更新时间: 2025-01-02 16:34:56

本文介绍阿里云任务调度SchedulerX的操作实践指南,帮助您更好地使用SchedulerX的功能。

实践指南

使用定时任务的灰度

SchedulerX定时任务支持基于Label的路由策略,您可以在SDK中配置Label标签,使任务自动调度到某个Label的Worker上来完成任务的灰度功能,详情可参见如何使用定时任务的灰度

接入日志服务

日志服务可以帮助您记录并分析系统运行过程中的关键信息,有助于排查系统故障、发现潜在问题。分布式任务调度系统SchedulerX 2.0提供日志服务,您无需修改代码,只需增加一个Log4j或Logback的配置,即可在控制台看到每次任务调度(包括分布式任务)的业务日志。详情可参见如何接入日志服务

使单应用支持十万以上的定时任务

SchedulerX中创建的应用默认最多只支持1000个任务,而在某些场景下1000个任务远远满足不了业务需求。常见应用场景是每个定时任务调度时间都不一样,无法通过MapReduce分布式任务解决。为了使单应用能够支持十万以上的定时任务,您可以联系SchedulerX技术支持人员,开启应用自动扩容或者使用1.2.1及以上版本客户端接入SchedulerX,并开启共享ContainerPool功能。详情可参见如何使单应用支持十万以上的定时任务

通过任务优先级队列进行应用级别限流

在面对突发峰值任务调度的场景下,系统可能面临巨大的压力。例如,当许多天级别的任务被设置在同一时间启动时,若无有效的调控措施,会导致后端业务无法承受这些并发负载,从而引发系统崩溃的风险。在任务调度过程中,您可以通过两种策略来实现应用级别的限流。分别是应用开启限流并设置队列大小,以及配置可抢占的优先级队列。详情可参见如何管理应用级别的资源和任务优先级

创建秒级调度任务

秒级任务适合对实时性要求比较高的业务,例如不停做轮询的准实时业务,通过内存网格和秒级调度,可以让您不停地处理海量的数据。SchedulerX的秒级任务属于定时调度类型,适用于简单Java任务、分布式Java任务和脚本任务,以及各种执行方式。详情可参见如何创建秒级调度任务

设置数据时间

例如一个任务在每天00:30运行,但是实际上要处理前一天的数据,即数据时间需要在任务时间的基础上,向前偏移一小时。您可以通过数据时间处理非任务执行时间的数据。详情可参见如何设置数据时间

重刷数据

如果您的业务发生变更,如数据库增加一个字段或者上一个月数据有错误,需要把过去一段时间的任务重新执行一遍,可以重刷调度任务数据。详情可参见如何重刷数据

接入链路追踪

在微服务分布式场景下,全链路追踪功能给业务提供了各个服务点执行情况的可视化快速分析定位能力。在定时任务场景下,业务执行链路可能比常规实时业务的执行链路更长,接入全链路追踪有助于查询任务执行耗时、分析执行异常等问题。详情可参见如何接入链路追踪

指定标签

任务指定标签主要应用在灰度、压测等场景。同一个应用分组下的机器,部分机器可能要用于灰度或者压测,您可以在SDK 中配置指定标签来解决。详情可参见如何指定标签

接入概览数据

SchedulerX针对专业版应用提供了概览时序数据信息查看功能,同时支持通过接口获取相应的数据信息,并且支持集成至自建的Grafana中。您可以将SchedulerX的概览数据接入至自建的Grafana中,详情可参见如何接入概览数据

HTTP任务签名认证

为确保HTTP任务的服务接收方能安全地处理分布式任务调度平台SchedulerX发起的调度请求,调度端会在HTTP请求头中默认采用SHA1-RSA签名算法生成schedulerx-signature字段签名串,用于服务端做认证处理。详情可参见HTTP任务签名认证

将任务调度应用优雅下线

定时任务持续地按固定频率在应用进程中执行。当应用在发布重启时,进程需暂时下线。如果直接关闭应用,正在进行中的定时任务将被中断,可能导致数据不完整或其他问题。为避免该情况,SchedulerX实现了定时任务的优雅下线功能,在关闭应用前,需等待当前正在进行的任务执行完成后,再安全地关闭应用。详情可参见如何将任务调度应用优雅下线

上一篇: 分布式任务调度 下一篇: 如何使用定时任务的灰度
阿里云首页 微服务引擎 相关技术圈