浅谈
ScheduleX 简称分布式任务调度,简单的可以理解为就是一个分布式的计划任务,多台机器安装了 ScheduleX 的客户端后,用户可以在 控制台进行统计的任务调度和分配处理。
- schedulerx-console 是 SchedulerX 的控制台,用于创建、管理定时任务。负责数据的创建、修改和查询。在产品内部与 schedulerx server 交互。
- schedulerx-server 是 SchedulerX 的服务端,是 SchedulerX 的核心组件。负责客户端任务的调度触发以及任务执行状态的监测。
- schedulerx-client 是 SchedulerX 的客户端。每个接入客户端的应用进程就是一个的 Worker。Worker 负责与 schedulerx-server 建立通信,让 schedulerx-server 发现客户端的机器。并向 schedulerx-server 注册当前应用所在的分组,这样 schedulerx-server 才能向客户端定时触发任务。
案例讲解
案例一:
scheduleX 的控制台界面的报警联系人是如何同步过来的?触发报警后没有通知联系人。
排查:
首先了解 scheduleX 控制台上看到的用户来源是 RAM Console 上的数据,如果你在 RAM Console 添加了一个子账号,这里就会显示出来。
通过过来的内容只有子账号信息,不包含 RAM Console 上设置的手机、描述信息等。
- 从 RAM 控制台同步过来的账号,需要手动在控制台上,账号中心-》个人账号里面-》添加对应联系人
案例二:
2018-12-19 17:40:41,522 ERROR ScxTaskProcessor-48-com.alibaba.uc.xxqg.video.res.job.CheckVideoSetAuditStatusJob-38885978-2018-12-19 17:40:30-0 -[Executor]: acknowledge failed, status:3, retryTimes:0, server:100.100.12.12:9999, instanceId:35978, id:31465, acknowledgeResult:false false 101 失败 schedulerx-default-1
DTS-heart-beat-thread-1 -[DtsClientHeartBeatTimer]: serverList is empty, clientConfig:ClientConfig [remotingThreads=32, heartBeatIntervalTime=120000, connectionTimeout=3000, groupId=1-1-3-68, zkHosts=null, namespace=zk-dts-root, zkSessionTimeout=10000, zkConnectionTimeout=10000, isSpring=true, queueSize=10000, consumerThreads=5, consumerThreadsMap=null, version=2.1.4-SNAPSHOT, pageSize=1000, pageSizeMap=null, accessKey=8419bb9xx11448ea, secretKey=null, localAddress=192.168.1.7, clientId=0eeb6542-21ad920:192.168.1.7, crashRetry=false, pullTaskListOverSleepTime=20000, failureJobProcessorMap=null, stopJobProcessor=null, finishLog=true, isEveryTimeNew=false, zkHostsAutoChange=true, maxBodySize=65536, environment=SchedulerX, signature=hOM8Q9au7l6Y=, jobMap=null, machine=null, domainName=schedulerx-cn-north-2.console.aliyun.com, serviceGroup=null, regionName=cn-north-2-gov-1, serviceGroupId=null, autoInit=true, isAgent=false, newInstance=true, configPath=null, connectTime=1540556330841, innerDebug=0, newVersion=false] schedulerx-default-2
按照类似的报错提示,是链接 scheduleX 的服务端失败,可以参考一下排查过程:
- 1)检查下本机 ping schedulerx-cn-north-2.console.aliyun.com 的连通性,如果 ping 都不通肯定会报错。
- 2)curl 测试到 domainName=schedulerx-cn-north-2.console.aliyun.com 连通性,curl -voa http://schedulerx-cn-north-2.console.aliyun.com
- 3)如果出现类似以下信息,请工单联系阿里云
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html> <head><title>301 Moved Permanently</title></head> <body bgcolor="white"> <h1>301 Moved Permanently</h1> <p>The requested resource has been assigned a new permanent URI.</p> <hr/>Powered by Tengine</body> </html>