原来XXL-JOB可以这么造

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
日志服务 SLS,月写入数据量 50GB 1个月
简介: 简要讲述基于Serverless应用引擎SAE(Serverless App Engine)的XXL-JOB零改造迁移

XXL-JOB零改造迁移

过去我们的xxl-job服务需要到github上面自己拉取对应的xxl-job服务源码,打包,部署到自己公司的服务器,然后通过nginx做负载均衡,配置DNS域名解析,最终才能看到xxl-job在浏览器端的展示,通常是这样的

image.png那么现在在这里,我们将基于Serverless应用引擎SAE(Serverless App Engine)对我们传统的XXL-JOB进行零改造迁移。

创建SAEJobHandler

登录sae控制台,控制台地址:https://sae.console.aliyun.com/,选择任务模板列表

image.png

点击【创建任务模板】

image.png

内容输入完成后点击【下一步】进行配置

image.png

这里语言选择比较熟悉的java,JAR包地址其实就是将开源的xxl-jobhttps://github.com/xuxueli/xxl-job的xxl-job-executor-sample-springboot打包之后上传在了sae里面,然后继续点击【下一步】

image.png

这里cron表达式先随便填一个,根据情况决定,点击【下一步】

image.png

确认完信息之后点击【确定创建】,完成任务模板创建。

点击【手动执行任务】跳转到任务记录列表

image.png

此时可以点击【任务id】查看任务执行日志

image.png

点击【实时日志】可以看到任务执行日志,对于这个SAEJobHandler,可能既是我们通常理解的JobHandler,又不是我们通常理解的JobHandler,日常工作中我们在用xxl-job的时候,会需要先去拉取xxl-job服务源码,然后打包部署服务,再开发对应的业务代码通过注册业务代码的ip地址到xxl-job服务的执行器管理,最后配置实现定时任务调用。而SAE是直接先创建一个空的执行器启动,然后其他的业务执行器可以直接引用这个执行器来加载执行。

image.png

日志显示服务启动成功,端口9999。

创建doJobHandler

这里的doJobHandler可以理解为业务jobHandler

image.png

点击【下一步】进入配置页面

image.png

配置页面汇总,其他内容跟上一个一样,红框处有改动,继续点击【下一步】到创建成功

image.png

点击【手动执行任务】,可以查看实时日志

image.png

展示执行成功。

使用过程中的疑惑

首先来说我为什么会想到写关于Serverless应用引擎SAE的内容,因为我看到了【XXL-JOB零改造迁移】,因为日常工作中经常会用到XXL-JOB服务,所以看到这个标题就会很感兴趣,然后就根据说明文档进行了基础的配置操作来 体验一下xxl-job零改造迁移。


整体操作下来的话,操作很流畅,很快就得到了实验成功的结果,但是有一点疑惑的是如何才能将现有的业务代码融合进当前这一套配置中呢,过去的定时任务项目中引入xxl-job的jar包之后,配置对应的xxl-job服务地址,如图
image.png

就可以实现在xxl-job服务器上的服务注册

image.png

那么现在在Serverless应用引擎SAE平台配置xxl-job并没有区分xxl-job的服务端和客户端,那么实际的业务项目应该引入xxl-job对应的什么jar包以及如何操作才能上传在SAE平台的定时任务模板中,并没有详细的说明,文档只说明了如何配置定时任务模板,不够详细,文档地址:https://help.aliyun.com/document_detail/432503.html


另外还有个问题就是假如文档给了如何改造现有项目来匹配SAE平台进行xxl-job定时任务托管的内容,那么项目中配置信息比如数据库地址,缓存地址,es地址,以及SAE平台的xxl-job定时任务如何区分开发环境、测试环境、线上环境等这些都没有明说,不同环境不同ip地址与SAE平台之间如何连通,是否会有ip白名单限制,是否会有网络交互问题限制呢?还是说因为想要引入SAE平台的xxl-job定时任务托管平台而把公司所有服务都搬到阿里云系列产品上去呢?产品是为了企业降本增效,如果因为这导致企业系统的不稳定或者增加了成本都是得不偿失的。


当然我相信SAE的产生后面一定是一个强大的团队在支撑,我的这些只是我对这款产品了解的不够透彻才有的担忧,毕竟我所用到的只是SAE众多功能中的一角,不是核心的功能,因此不完善也是有可能的,希望SAE后续文档不断丰富,demo也不断丰富,让每一个简单的技术人简单的接入SAE。

相关实践学习
基于小程序Serverless开发个人相册小程序
本场景基于小程序云Serverless+小程序开发者工具(IDE),快速搭建个人相册小程序
SAE的功能与使用入门
欢迎来到《SAE的功能与使用入门》,本课程是“云原生Serverless Clouder认证“系列中的第三阶段。课程将向您介绍阿里云Serverless应用引擎(SAE)服务相关的概念、特性与使用方式。通过课程将带您逐步深入探索Serverless世界,借助SAE服务,即使没有丰富的云计算和IT经验,也能够让开发人员在实际业务场景中便捷的掌握如何构建和部署应用程序,快速拥抱Serverless架构,将精力聚焦在应用代码和业务逻辑的实现上。 学习完本课程后,您将能够: 掌握Serverless应用引擎(SAE)的基本概念与核心优势 了解Serverless应用引擎(SAE)的核心功能 掌握使用Serverless应用引擎(SAE)的开发和部署流程 了解Serverless应用引擎(SAE)的适用场景和最佳实践  
相关文章
|
1月前
|
Java 调度 Maven
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(下)
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(下)
155 0
|
缓存 Java 应用服务中间件
一文带你使用xxl-job定时任务
将调度行为抽象形成“调度中心”公共平台,而平台自身并不承担业务逻辑,“调度中心”负责发起调度请求。 将任务抽象成分散的JobHandler,交由“执行器”统一管理,“执行器”负责接收调度请求并执行对应的JobHandler中业务逻辑。 因此,“调度”和“任务”两部分可以相互解耦,提高系统整体稳定性和扩展性;
1707 0
一文带你使用xxl-job定时任务
|
1月前
|
SQL 负载均衡 监控
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(上)
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目
141 0
|
1月前
|
负载均衡 Java 调度
xxl-job与其他调度框架比较与部署
xxl-job与其他调度框架比较与部署
xxl-job与其他调度框架比较与部署
|
1月前
|
SQL Java 关系型数据库
【极光系列】springBoot集成xxl-job调度器
【极光系列】springBoot集成xxl-job调度器
67 2
|
8月前
|
存储 SQL BI
xxl-job 介绍与使用
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
106 0
|
9月前
|
缓存 Java 调度
xxl-job的原理(1)
xxl-job的原理(1)
76 0
|
9月前
|
SQL 调度 数据库
|
9月前
|
存储 Java Serverless
XXL-JOB零改造迁移
本实验将带大家体验,如何将XXL-JOB零改造迁移到Serverless Job。
136 0
|
10月前
|
JavaScript Java 关系型数据库
xxl-job搭建
xxl-job搭建
231 0