分布式定时任务调度框架实践
Posted vivo互联网技术
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式定时任务调度框架实践相关的知识,希望对你有一定的参考价值。
(滑动可查看) 2.6 其余开源框架 (1)Saturn:Saturn是唯品会开源的一个分布式任务调度平台,在Elastic Job的基础上进行了改造。 (2)SIA-TASK:是宜信开源的分布式任务调度平台。 三、优劣势对比和业务场景适配思考 业务思考: 丰富任务监控数据和告警策略。 接入统一登录和权限控制。 进一步简化业务接入步骤。 四、结语 对于并发场景不是特别高的系统来说,xxl-job配置部署简单易用,不需要引入多余的组件,同时提供了可视化的控制台,使用起来非常友好,是一个比较好的选择。希望直接利用开源分布式框架能力的系统,建议根据自身的情况来进行合适的选型。 附:参考文献 quartz插件——实现任务之间的串行调度 END vivo互联网技术 vivo移动互联网是基于vivo 智能手机所建立的完整移动互联网生态圈,围绕vivo大数据运营,打造包括应用、游戏、资讯、品牌、电商、内容、金融、搜索的全方位服务生态,满足海量用户的多样化需求。 点一下你会更好看耶 1.Quartz入门 以上是关于分布式定时任务调度框架实践的主要内容,如果未能解决你的问题,请参考以下文章
OfflineTaskExecutorFacade offlineTaskExecutorFacade;
ReturnT<String> Exception
XxlJobLogger.log(
offlineTaskExecutorFacade.executeOfflineTask();
(Exception e)
XxlJobLogger.log(, e);
FAIL;
XxlJobLogger.log( SUCCESS;
ReturnT<String> Exception
ShardingUtil.ShardingVO shardingVO = ShardingUtil.getShardingVo();
XxlJobLogger.log(
(i = (i == shardingVO.getIndex())
XxlJobLogger.log(
XxlJobLogger.log(
SUCCESS;
= = OfflineTaskExecutorFacade offlineTaskExecutorFacade;
SpringApplication.run(XxlJobExecutorApplication.class, args);
ZookeeperRegistryCenter regCenter(String serverList,
String namespace)
new ZookeeperRegistryCenter(new ZookeeperConfiguration(serverList, namespace));
DataSourceProperties
url;
username;
password;
DataSource getDataSource()
DruidDataSource dataSource = DruidDataSource();
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource;
DataSource dataSource;
JobEventConfiguration
JobEventRdbConfiguration(dataSource);
ElasticSimpleJob
value()
cron()
jobName()
int shardingTotalCount()
shardingItemParameters()
jobParameter() ElasticJobAutoConfiguration
serverList;
ApplicationContext applicationContext;
DataSource dataSource;
initElasticJob()
ZookeeperRegistryCenter regCenter = ZookeeperRegistryCenter(ZookeeperConfiguration(serverList, regCenter.init();
Map<
(Map.Entry< SimpleJob simpleJob = entry.getValue();
ElasticSimpleJob elasticSimpleJobAnnotation = simpleJob.getClass().getAnnotation(ElasticSimpleJob.class);
cron = StringUtils.defaultIfBlank(elasticSimpleJobAnnotation.cron(), elasticSimpleJobAnnotation.value());
SimpleJobConfiguration simpleJobConfiguration = SimpleJobConfiguration(JobCoreConfiguration.newBuilder(simpleJob.getClass().getName(), cron, elasticSimpleJobAnnotation.shardingTotalCount()).shardingItemParameters(elasticSimpleJobAnnotation.shardingItemParameters()).build(), simpleJob.getClass().getCanonicalName());
LiteJobConfiguration liteJobConfiguration = LiteJobConfiguration.newBuilder(simpleJobConfiguration).overwrite(
JobEventRdbConfiguration jobEventRdbConfiguration = JobEventRdbConfiguration(dataSource);
SpringJobScheduler jobScheduler = SpringJobScheduler(simpleJob, regCenter, liteJobConfiguration, jobEventRdbConfiguration);
jobScheduler.init();
cron = jobName = shardingTotalCount = jobParameter = shardingItemParameters =
Logger logger = LoggerFactory.getLogger(OfflineTaskJob.class);
OfflineTaskExecutorFacade offlineTaskExecutorFacade;
offlineTaskExecutorFacade.executeOfflineTask();
logger.info(String.format(+
+
,
Thread.currentThread().getId(),
shardingContext.getShardingTotalCount(),
shardingContext.getShardingItem(),
shardingContext.getShardingParameter(),
shardingContext.getJobName(),
shardingContext.getJobParameter()
));
分布式定时任务调度框架 - Quartz学习及实战记录笔记
目录
2.Quartz中的常用组件之间的关系
3.Trigger触发器的介绍
4.Quartz配置资源介绍
5.Quartz监听器
6.SpringBoot整合Quartz实现动态的创建或删除定时任务并将定时调度任务持久化到MySQL以及Quartz集群配置
7.分布式定时任务调度框架学习与实战记录完整篇