首页 文章 精选 留言 我的

精选列表

搜索[CI/CD集成],共10000篇文章
优秀的个人博客,低调大师

数据集成软件 TIS V4.0.0 版本发布

TIS的v4.0.0版本终于和大家见面了,v4.0.0着重在以下几方面进行了功能加强和升级。https://gitee.com/qlangtech/tis 功能该要 飞跃性能,稳定如磐 TIS依赖的核心框架Flink全面升级到了1.18版本,同时配套的Flink-CDC也升级至3.0.1版本,这意味着TIS在处理大数据量时有了更好的性能保障和更稳定的表现。 云原生之旅,启航新篇章 我们将传统的本地部署模式升级为支持Kubernetes的CloudNative部署模式。借助PowerJob的力量,我们的单点同步任务现在可以分布式执行,支持多任务并发,极大地提升了数据同步管道的吞吐能力。 而且,我们还增加了基于PowerJob的Crontab定时任务触发方式,让T+1离线数据的自动采集变得轻而易举。 连接世界,无限可能 我们新增了一系列数据连接器,比如备受期待的PostgreSQL连接器,让数据的无缝对接变得更加丰富多彩。 透明流程,掌控全局 我们对部署流程进行了优化,特别是对于那些包含长时间等待操作的流程,比如发布Flink流式计算任务。现在,我们引入了可视化机制,每个步骤的执行状态都将直观展现在用户面前。如果遇到失败,用户可以立即通过界面了解原因,快速找到解决方案。 Bug Fix 管道创建流程中更改端类型会出错#312 k8s application 模式下SQL模式执行flink Job 出错#308 无法识别VARBINARY类型的字段列#296 终止任务bug#294 [tis-flink-cdc-postgresql-plugin] java.lang.ClassCastException: java.sql.Timestamp cannot be cast to java.time.Instant#293 写入clickhosue时自动建表bug#292 FTP方式找不到对应匹配的文件#289 mysql->doris 增量执行streamload出错#285 分库分表同步报找不到表#283 整库同步时个别表有json类型字段下游create table ddl报错#280 plugin 进行校验过程中错误被遮蔽#277 MySQL CDC Source 异常恢复消费位点异常#274 flink rest api client 解析服务端返回的结果有类无法反序列化#268 New Feature Flink K8S Cluster启动附加loadbalance service Flink JobMaster报WARN信息#310 TIS 整体部署容器化部署方案#309 将flink-cdc的MySQL校验MySqlValidator.checkVersion前置#306 添加flink连接同步timeout#298 添加基于Flink-cdc 实现的 Postgresql source端实现#291 实时同步无法使用“批量创建“#284 为TIS 各种端提供图标显示支持#275 建议在批量构建功能中增加定时任务,可以实现datax的定时全量和增量同步#255 [feature] 添加flink 实例一览页面#213 升级flink相关组件到最新版本#168 支持批量任务分布式执行#157 支持TIS Flink 在K8S上运行#156 离线T+1 怎么定时?#97 经典案例 MySQL导入ElasticSearch MySQL导入Hive MySQL导入Clickhouse MySQL全表入湖Hudi>>视频Demo MySQL到StarRocks的同步实现>>视频Demo 多源同步Doris方案介绍>>视频Demo Installation TIS Package安装说明(https://tis.pub/docs/install/tis/uber) TIS Flink Standalone Package安装说明(https://tis.pub/docs/install/flink-cluster/standalone) Flink On Kubernetes安装说明(https://tis.pub/docs/install/flink-cluster/native) 分布式批量数据同步组件PowerJob安装说明( https://tis.pub/docs/install/powerjob/k8s) TIS Zeppeline NoteBook Installation安装说明(https://tis.pub/docs/install/zeppelin) Related Projects qlangtech/tis(https://github.com/qlangtech/tis/tree/master) qlangtech/plugins(https://github.com/qlangtech/plugins/tree/master) qlangtech/ng-tis(https://github.com/qlangtech/ng-tis/tree/master) qlangtech/tis-archetype-plugin(https://github.com/qlangtech/tis-archetype-plugin/tree/master) qlangtech/tis-ansible(https://github.com/qlangtech/tis-ansible/tree/master) qlangtech/update-center2(https://github.com/qlangtech/update-center2/tree/master) qlangtech/DataX(https://github.com/qlangtech/DataX/tree/master) qlangtech/tis-git-manager(https://github.com/qlangtech/tis-git-manager/tree/master) qlangtech/flink(https://github.com/qlangtech/flink/tree/tis-1.13.1) qlangtech/chunjun(https://github.com/qlangtech/chunjun/tree/tis-v1.12.5) qlangtech/tis-doc(https://github.com/qlangtech/tis-doc/tree/master) qlangtech/hudi(https://github.com/qlangtech/hudi/tree/tis-release-0.10.1) qlangtech/zeppelin(https://github.com/qlangtech/zeppelin/tree/tis-v0.10.1) 反馈 💻项目地址:https://gitee.com/qlangtech/tis 🧐提交问题和建议:https://gitee.com/qlangtech/tis/issues 🥁贡献代码:https://gitee.com/qlangtech/tis/pulls 📧订阅社区开发邮件列表:dev@tis.datavane.org

优秀的个人博客,低调大师

ORM 工具 HasorDB 4.3.4 发布,支持 Spring/SpringBoot 集成

介绍 HasorDB是一个全功能数据库访问工具,提供对象映射、丰富的类型处理、动态SQL、存储过程、内置分页方言20+、支持嵌套事务、多数据源、条件构造器、INSERT 策略、多语句/多结果。并兼容 Spring 及 MyBatis 用法。它不依赖任何其它框架,因此可以很方便的和任意一个框架整合在一起使用。 功能特性 熟悉的方式 JdbcTemplate 接口方式(高度兼容 Spring JDBC) Mapper 文件方式(高度兼容 MyBatis) LambdaTemplate (高度接近 MyBatis Plus、jOOQ 和 BeetlSQL) @Insert、@Update、@Delete、@Query、@Callable 注解(类似 JPA) 事务支持 支持 5 个事务隔离级别、7 个事务传播行为(与 Spring tx 相同) 提供 TransactionTemplate、TransactionManager 接口方式声明式事务控制能力(用法与 Spring 相同) 特色优势 支持 分页查询 并且提供多种数据库方言(20+) 支持 INSERT 策略(INTO、UPDATE、IGNORE) 更加丰富的 TypeHandler(MyBatis 40+,HasorDB60+) Mapper XML 支持多语句、多结果 提供独特的@{xxx, expr , xxxxx }规则扩展机制,让动态 SQL 更加简单 支持 存储过程 支持 JDBC 4.2 和 Java8 中时间类型 支持多数据源 Release.Note 支持 Spring Xml 配置方式使用 HasorDB 支持 Spring Boot @MapperScan 方式配置。 DynamicConnection 增加 releaseConnection 方法用于外部数据源管理器的连接释放操作。 优化 Mapper 匹配逻辑,增加 mapper 匹配成功率。 RefMapper 和 SimpleMapper 都标记了 DalMapper 注解 最后 在最后如果您觉得这个工具还不错可以给个 start 多多关注这个工具,地址为:https://gitee.com/zycgit/hasordb 此外如果你想更多了解它,可以在它的官网上详细阅读使用技巧https://www.hasordb.net

优秀的个人博客,低调大师

Core如何集成定时任务处理库Quart?

.NET Core可以创建“定时”后台服务在 ASP.NET Core 中使用托管服务实现后台任务(例如,每10分钟运行一次任务),但是自带的后台服务应用场景太局限。在实际场景中,我们通常需要指定更复杂的时间参数。例如 凌晨2点30,每天的上午10点,每两小时一次,当处理这些复杂的时间时,自带的解决方案就显得格格不入了。 为些Quartz.NET提供了强大的解决方案, 通过使用Cron表达式,您可以确保任务在特定时间运行,或仅在特定的几天运行,或这些时间的任意组合。 Quart.Net介绍 概述 Quartz主要有三部分组成任务(Job)、触发器(Trigger)和调度器(Schedule)。 任务 Job就是执行的作业,Job需要继承IJob接口,实现Execute方法。Job中执行的参数从Execute方法的参数中获取。 触发器 触发器常用的有两种:SimpleTrigger触发器和CronTrigger触发器。 调度器 调度器就是将任务和触发器绑定,让触发器触发的时候去执行任务。上一个简单的案例 案例 1、首先Nuget包引用 nuget install Quartz.AspNetCore 2、定义一个Job任务 /// <summary> /// 创建IJob的实现类,并实现Excute方法 /// </summary> public class TestJob : IJob { public Task Execute(IJobExecutionContext context) { return Task.Run(() => { Console.WriteLine("output testjob log"); }); } } 3、Api控制器调用方法创建任务 [Route("quart")] [ApiController] public class QuartController : Controller { private readonly ISchedulerFactory _schedulerFactory; public QuartController(ISchedulerFactory schedulerFactory) { _schedulerFactory = schedulerFactory; } [HttpGet("CreateTask")] public async Task<IActionResult> CreateTask() { //通过调度工厂获得调度器 var _scheduler = await _schedulerFactory.GetScheduler(); //开启调度器 await _scheduler.Start(); //创建一个触发器 var trigger = TriggerBuilder.Create() .WithSimpleSchedule(x => x.WithIntervalInSeconds(2).RepeatForever())//每两秒执行一次 .Build(); //创建任务 var jobDetail = JobBuilder.Create<TestJob>() .WithIdentity("job", "group") .Build(); //将触发器和任务器绑定到调度器中 await _scheduler.ScheduleJob(jobDetail, trigger); return new JsonResult(new { success = true }); } } 调用 localhost://quart/createtask 即可以看控制台看到每隔俩秒钟输出一段控制台信息。 实例使用场景 上述的案例是一种通过自己创建三元素的方式来创建任务,在一些通用场景下其实我们只关心定时任务的逻辑和执行的频率,其他我可以不考虑。 即领导给了我一个任务,任务的功能是:开发一个定时任务,每天02:30执行,清理数据库历史记录。那么开发者最方便的方式是什么? 伪代码 1、定义执行Job class CleanJob{ [cron表达式] public void cleanDatabase(){ 业务逻辑 } } 2、注入任务 services.Register(typeof(CleanJob)) 如何能够通过这样的方式实现是最好的,但是现实是NetCore的quart.net现在还不支持这样的定义方式,java好像是可以的。 那有没有其他类似的方式可以实现上面的效果呢? 我给大家推荐一种方式 案例说明 1、定义一个初始化配置的服务注册 public static class QuartzIocExtend { public static void AddJobAndTrigger<T>(this IServiceCollectionQuartzConfigurator quartz, IConfiguration config, string category = "Default") w { string quartKey = "Quartz"; // 泛型Job的name string jobName = typeof(T).Name; // 从appsetting.json中获取任务job的corn执行表达式 var configKey = $"{quartKey}:{category}:{jobName}"; var cronSchedule = config[configKey]; // 校验cron表达式存在 if (string.IsNullOrEmpty(cronSchedule)) { throw new Exception($"No Quartz.NET Cron schedule found for job in configuration at {configKey}"); } // 注册job var jobKey = new JobKey(jobName); quartz.AddJob<T>(opts => opts.WithIdentity(jobKey)); //为job添加调度器 quartz.AddTrigger(opts => opts .ForJob(jobKey) .WithIdentity(jobName + "-cron-trigger") .WithCronSchedule(cronSchedule)); } 2、ConfigureServices中注册 //quartz 定时服务 services.AddQuartz(q => { q.UseMicrosoftDependencyInjectionScopedJobFactory(); q.AddJobAndTrigger<TestJob>(configuration); }); 3、配置文件定义cron表达式 "Quartz": { "Default": { //5秒钟执行一次 "TestJob":"0/5 * * * * ? *" } } 4、执行测试 测试结果正确,每五秒钟输出文本 参考 Quart.net官方文档 在.NET Core 中使用Quartz.NET .Net Core中使用Quartz.NET Quartz.Net使用教程 在ASP.NET Core中创建基于Quartz.NET托管服务轻松实现作业调度 最后 本文到此结束,希望对你有帮助 😃 如果还有什么疑问或者建议,可以多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。 更多精彩技术文章汇总在我的 公众号【程序员工具集】,持续更新,欢迎关注订阅收藏。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册