【xxl-job】SpringBoot零基础集成xxl-job

原理篇-- 定时任务xxl-job-服务端(admin)项目启动过程(1) 我们已经熟悉并使用了xxl-job 进行任务调度,作为服务端的xxl-job 的工作过程是怎样的,本文进行介绍。XxlJobAdminConfig 是 xxl-job-admin 的配置类,用于配置 xxl-job-admin 的相关参数和属性,以实现对 xxl-job-admin 的自定义配置和定制。配置注册中心:通过 XxlJobAdminConfig 可以配置 xxl-job-admin 的注册中心,包括注册中心的地址、端口、用户名、密码等,用于管理 xxl-job 的执行器和任务。配置调度中心。 阅读详情
AI摘要

本文详细介绍如何在SpringBoot项目中集成xxl-job任务调度框架,包括xxl-job-admin的部署及SpringBoot示例项目的配置过程。通过图文并茂的方式,帮助初学者快速掌握xxl-job的使用。

摘要

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

xxl-job主要分成两部分:

  • 一部分是xxl-job-admin。这是管理控制台,简单理解就是用于管理和调度任务。
  • 另一部分是xxl-job-core。这主要是帮助开发人员更高效的开发具体的任务,然后与调度中心交互,完成具体任务的执行操作。

官方文档

  • 中文文档: https://www.xuxueli.com/xxl-job/
  • 英文文档: https://www.xuxueli.com/xxl-job/en/
  • Github源码地址: https://github.com/xuxueli/xxl-job

xxl-job-admin部署

  • 下载源码: git clone https://github.com/xuxueli/xxl-job
  • 执行数据库初始化脚本
cd xxl-job
mysql -uroot -proot < doc/db/tables_xxl_job.sql

在这里插入图片描述

  • 修改配置文件application.properties
    • 修改xxl-job-admin启动端口
      在这里插入图片描述
    • 修改数据库配置信息
      在这里插入图片描述
    • 关闭邮件通知服务
      在这里插入图片描述
  • 启动xxl-job-admin
    在这里插入图片描述
    • 输出以下日志代表启动成功
    Connected to the target VM, address: '127.0.0.1:55192', transport: 'socket'
    
    .   ____          _            __ _ _
    /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
    \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
    '  |____| .__|_| |_|_| |_\__, | / / / /
    =========|_|==============|___/=/_/_/_/
    
    :: Spring Boot ::                (v3.4.2)
    
    17:22:29.726 logback [main] INFO  c.x.job.admin.XxlJobAdminApplication - Starting XxlJobAdminApplication using Java 17.0.0.1 with PID 22948 (G:\projects-blog\xxl-job\xxl-job-admin\target\classes started by best5 in G:\projects-blog\xxl-job)
    17:22:29.728 logback [main] INFO  c.x.job.admin.XxlJobAdminApplication - No active profile set, falling back to 1 default profile: "default"
    17:22:31.174 logback [main] INFO  o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8080 (http)
    17:22:31.185 logback [main] INFO  o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
    17:22:31.186 logback [main] INFO  o.a.catalina.core.StandardService - Starting service [Tomcat]
    17:22:31.186 logback [main] INFO  o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.34]
    17:22:31.246 logback [main] INFO  o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring embedded WebApplicationContext
    17:22:31.246 logback [main] INFO  o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1309 ms
    17:22:31.895 logback [main] INFO  c.x.j.a.c.scheduler.XxlJobScheduler - >>>>>>>>> init xxl-job admin success.
    17:22:31.915 logback [xxl-job, admin JobFailMonitorHelper] INFO  com.zaxxer.hikari.HikariDataSource - HikariCP - Starting...
    17:22:31.966 logback [main] INFO  o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page template: index
    17:22:32.489 logback [xxl-job, admin JobFailMonitorHelper] INFO  com.zaxxer.hikari.pool.HikariPool - HikariCP - Added connection com.mysql.cj.jdbc.ConnectionImpl@1ea6c96a
    17:22:32.492 logback [xxl-job, admin JobFailMonitorHelper] INFO  com.zaxxer.hikari.HikariDataSource - HikariCP - Start completed.
    17:22:32.744 logback [main] INFO  o.s.b.a.e.web.EndpointLinksResolver - Exposing 1 endpoint beneath base path '/actuator'
    17:22:32.822 logback [main] INFO  o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
    17:22:32.865 logback [main] INFO  o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring DispatcherServlet 'dispatcherServlet'
    17:22:32.865 logback [main] INFO  o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
    17:22:32.866 logback [main] INFO  o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
    17:22:32.868 logback [main] INFO  o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8080 (http) with context path '/xxl-job-admin'
    17:22:32.893 logback [main] INFO  c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 3.485 seconds (process running for 5.185)
    17:22:36.001 logback [xxl-job, admin JobScheduleHelper#scheduleThread] INFO  c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>> init xxl-job admin scheduler success.
    
    • 当然也可以通过mvn package命令打成Fatjar,然后通过java -jar xxxx.jar命令运行
  • 浏览器访问调度中心
    • 访问地址http://localhost:8080/xxl-job-admin/
      在这里插入图片描述
    • 默认登录账号: admin
    • 默认登录密码: 123456
  • 登录后的界面
    在这里插入图片描述

部署SpringBoot示例xxl-job-executor-sample-springboot

  • 修改配置
    • 修改示例程序启动的端口
    • 修改调度中心的地址
    • 修改示例程序与调度中心通讯的端口
      在这里插入图片描述
  • 启动示例程序
    在这里插入图片描述
    • 当然也可以通过mvn package命令打成Fatjar,然后通过java -jar xxxx.jar命令运行
    • 输出以下日志代表启动成功
    Connected to the target VM, address: '127.0.0.1:55351', transport: 'socket'
    
    .   ____          _            __ _ _
    /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
    \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
    '  |____| .__|_| |_|_| |_\__, | / / / /
    =========|_|==============|___/=/_/_/_/
    :: Spring Boot ::                (v2.4.5)
    
    13:18:48.342 logback [main] INFO  c.x.j.e.XxlJobExecutorApplication - Starting XxlJobExecutorApplication using Java 1.8.0_241 on DESKTOP-MRA9GD8 with PID 7176 (G:\projects-blog\xxl-job\xxl-job-executor-samples\xxl-job-executor-sample-springboot\target\classes started by Administrator in G:\projects-blog\xxl-job)
    13:18:48.348 logback [main] INFO  c.x.j.e.XxlJobExecutorApplication - No active profile set, falling back to default profiles: default
    13:18:51.795 logback [main] INFO  o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8081 (http)
    13:18:51.812 logback [main] INFO  o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8081"]
    13:18:51.814 logback [main] INFO  o.a.catalina.core.StandardService - Starting service [Tomcat]
    13:18:51.814 logback [main] INFO  o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.45]
    13:18:51.998 logback [main] INFO  o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
    13:18:51.999 logback [main] INFO  o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 2909 ms
    13:18:52.152 logback [main] INFO  c.x.j.e.core.config.XxlJobConfig - >>>>>>>>>>> xxl-job config init.
    13:18:52.515 logback [main] INFO  o.s.s.c.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
    13:18:53.303 logback [main] INFO  c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:demoJobHandler2, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@4f2d014a[class com.xxl.job.executor.service.jobhandler.SampleXxlJob#demoJobHandler2]
    13:18:53.310 logback [main] INFO  c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:demoJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@28e0e464[class com.xxl.job.executor.service.jobhandler.SampleXxlJob#demoJobHandler]
    13:18:53.311 logback [main] INFO  c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:httpJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@1d98daa0[class com.xxl.job.executor.service.jobhandler.SampleXxlJob#httpJobHandler]
    13:18:53.311 logback [main] INFO  c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:commandJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@70a898b0[class com.xxl.job.executor.service.jobhandler.SampleXxlJob#commandJobHandler]
    13:18:53.312 logback [main] INFO  c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:shardingJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@7bdf61ad[class com.xxl.job.executor.service.jobhandler.SampleXxlJob#shardingJobHandler]
    13:18:53.777 logback [main] WARN  c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job accessToken is empty. To ensure system security, please set the accessToken.
    13:18:53.879 logback [main] INFO  o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8081"]
    13:18:53.975 logback [main] INFO  o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8081 (http) with context path ''
    13:18:53.996 logback [main] INFO  c.x.j.e.XxlJobExecutorApplication - Started XxlJobExecutorApplication in 6.383 seconds (JVM running for 9.119)
    13:18:55.608 logback [Thread-5] INFO  com.xxl.job.core.server.EmbedServer - >>>>>>>>>>> xxl-job remoting server start success, nettype = class com.xxl.job.core.server.EmbedServer, port = 9999
    
  • 在调度中心界面配置执行器
    • 查看本机IP
      在这里插入图片描述
    • 配置执行器
      在这里插入图片描述
  • 在调度中心界面调度执行一次任务
    在这里插入图片描述
  • 查看执行日志
    在这里插入图片描述
    在这里插入图片描述

分析执行日志原理

从上面的执行日志中可以看到输出XXL-JOB, Hello World等内容,这是怎么输出到调度中心的呢?接着往下看。

示例程序中的代码位置

在这里插入图片描述
使用XxlJobHelper.log()这个方法可以把日志输出到调度中心,如果使用本地的slf4j输出日志则只能打印到本地,要注意这个区别。

@XxlJob注解的使用

示例源码@XxlJob("demoJobHandler")中的demoJobHandler要与调度中心的配置JobHandler保持一致
在这里插入图片描述
在这里插入图片描述

总结

  • 每个步骤都有截图,写的很详细,方便零基础的同学跟着节奏一步一步上手。
  • 有兴趣的同学可以模仿这个示例程序自己写一个JobHandler,然后在调度中心注册一个执行器,新增一个任务。
  • 如果有疑问,欢迎交流沟通。
原理篇-- 定时任务xxl-job-admin的表&任务状态介绍 在 中我们已经知道了如何在项目中使用xxljob ,接下来从xxljob 的原理入手进行介绍,首先看下xxljob-admin 服务端所使用的几张表。本文对xxl-job 服务端涉及的表及其任务状态进行介绍。 阅读详情

相关推荐

xxl-job使用教程

springboot版本配置参照xxl-job-executor-sample-springboot中的代码。spring版本配置参照xxl-job-executor-sample-frameless中的代码。启动client,在admin管理后台中能看到client注册上来了。accessToken值替换(后面client配置中会用到)即可 初始密码 admin/123456。创建对应数据库,导入初始sql。替换对应的数据库链接。

u013529468的博客 6641

xxl-job-admin 安装详解

一、简介 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 官方文档: 中文文档 English Documentation 源码仓库地址 源码仓库地址 Release Download https://github.com/xuxueli/xxl-job Download http://gitee.com/xuxueli0323/xxl-job Download 中央仓库地址 <

我思,顾我在 1万+

基于SpringBoot集成DATAX、XXL-JOB实现离线数据定时同步实践

在很多实际应用中,需要实现离线数据定时同步,比如生产库和运营库分离之后,在运营库实现离线数据对账。 本文介绍一种实现方式,完成基于SpringBoot集成DATAX、XXL-JOB实现离线数据定时同步。 一、集成XXL-JOB 集成XXL-JOB,需要添加xxl-job-admin、xxl-job-core模块。在主工程配置中添加: <modules> <module&g...

HIT的专栏 1万+

配置部署调度中心 xxl-job-admin

XXL-JOB 是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。源码地址: https://gitee.com/xuxueli0323/xxl-job文档地址: https://www.xuxueli.com/xxl-job简单灵活提供Web页面对任务进行管理,管理系统支持用户管理、权限控制;支持容器部署;支持通过通用HTTP提供跨平台任务调度;丰富的任务管理功能支持页面对任务CRUD操作;支持在页面编写脚本任务、命令行任务、Java代码任务并执行;

m0_51963973的博客 2160

Springboot 集成xxl-job实现定时调度任务

一、前言 因为自己开发的系统中需要使用到定时调度的情境,所以结合自己使用的Springboot项目框架,准备接入xxl-job定时调度平台。 二、准备 1.先从xuxueli的GitHub上将xxl-job的源代码克隆一份到本地。 具体链接为https://github.com/xuxueli/xxl-job git clone https://github.com/xuxueli/xxl-job...

linkk 7137

SpringBoot 集成 xxl-job 实现定时任务管理

XXL-Job是一个功能强大的分布式任务调度框架,集成了Spring Boot后能够发挥更大的优势。它提供了分布式任务调度、任务执行报告、任务调度中心、良好的扩展性、分布式集群部署、监控与报警等多种优势。此外,XXL-Job是开源免费的,可以在GitHub上获取源代码和详细文档。详细的文档和使用指南可以在XXL-Job的官方文档中找到。

Java老兵的后端进阶与AI前沿探索之路。 4291

SpringBoot整合Xxl-Job

这样就表示Xxl-Job成功运行了。确保运行没问题后,就可以开始下一步。注意:在运行之前,需要把2的sql脚本执行完毕,并修改数据库连接池。可以不用eureka,这里我的项目中用到eureka所以增加该配置。第三、确实非常容易上手且轻量化(轻量化的一个体现就是非侵入式)第一、团队里有好几个人上一家公司或上上家公司用过。第二、这个生态比较丰富且开源。用户名默认为admin。

林知屿的博客 5966

SpringBoot整合XXL-JOB

XXL-JOB是一个开源的分布式任务调度平台,它能够帮助开发者简化定时任务的管理和执行。本文将指导你如何将XXL-JOB集成到Spring Boot项目中,以便管理和调度定时任务。通过以上步骤,你已经成功将XXL-JOB集成到Spring Boot项目中,并创建了一个简单的任务处理器。XXL-JOB提供了强大的任务调度功能,能够帮助你高效地管理和执行定时任务。随着你对XXL-JOB的深入了解,你还可以探索其更多高级特性和配置。

My_wife_QBL的博客 1595

xxl-job集成springboot实战,xxl-job定时任务详解

xxl-job集成springboot实战,xxl-job定时任务详解

杜盟恩的博客 6273

SpringBoot(四十三)SpringBoot集成xxl-job分布式任务调度平台

在这里我遇到了一个小坑,我的项目是多模块的springboot项目,我为xxl-job单独创建了一个模块,将代码配置在其中进行测试,发现不好用。支持可视化、简单且动态的管理调度信息,包括任务新建,更新,删除,GLUE开发和任务报警等,所有上述操作都会实时生效,同时支持监控调度结果以及执行日志,支持执行器Failover。负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。点击上图中的调度备注中的查看,会看到这次执行的基本信息(我最开始不知道啊,一直在服务器中查看调度日志)这部分是非常重要的。

camellia的博客 1606

xxl-job 集成 SpringBoot 使用

xxl-job 集成 SpringBoot 使用

杨杨杨~~的博客 2114

SpringBoot集成xxl-job

xxl-job-admin 本身就是一个 springboot 项目,将 xxl-job-admin 这个子项目从源代码中复制出来,使用 idea 打开,配置好 Maven,刷新Maven导入依赖(xxl-job-core等。接收“调度中心”的执行请求、终止请求和日志请求等。System.out.println("---------xxlJobTest定时任务执行成功--------");// log.info("---------xxlJobTest定时任务执行成功--------");

Hohxill的博客 5559

SpringBoot集成XXL-Job

SpringBoot--xxl-Job

Michesl的博客 1003

xxl-job项目集成到springBoot

源码:http://www.xuxueli.com/xxl-job/#/?id=%E4%B8%80%E3%80%81%E7%AE%80%E4%BB%8B 一初始化数据库 脚本位置/xxl-job/doc/db/tables_xxl_job.sql xxl-job-admin:调度中心 xxl-job-core:公共依赖 二.配置调度中心项目 调度中心项目:xxl-job-admin ...

zjz_i的博客 1万+

思科模拟器CIsco Packet Tracer利用三层交换机实现VLAN间路由

版权声明:如果对大家有帮助,大家可以自行转载的。 1.技术原理: 三层交换机具备网络层的功能,实现 VLAN 相互访问的原理是:利用三层交换机的路由功能,通过识别数据包的 IP 地址,查找路由表进行选路转发,三层交换机利用直连路由可以实现不同 VLAN 之间的相互访问。三层交换机给接口配置 IP 地址。采用 SVI(交换虚拟接口)的方式实现 VLAN 间互连。SVI 是指为交换机中的VLAN 创建...

qq_37992321的博客 1万+

oracle rac 成本及架构,Oracle Extended RAC 架构实战

Extended-RAC,是RAC技术的一种扩展增强。Extended-RAC是通过专用光纤(或租用裸光纤)加DWDM(波分设备)设备将两个不同楼栋/同城甚至异地机房进行相连,将数据库主机、存储分别放置于不同机房,利用存储复制/ASM Mirror等技术进行数据复制进行搭建的一种远距离集群架构。Extended RAC需要将不同楼栋/同城甚至异地机房通过专用光纤(或租用裸光纤)加DWDM(光纤复用...

weixin_33812391的博客 2453

SpringBoot3.xx集成XXL-JOB(xxl-job-admin-extend版本)

由于原生的xxl-job调度中心(xxl-job-admin)仅支持mysql,所以这里①地址1(xxl-job-admin):https://gitee.com/xuxueli0323/xxl-job下载下来后里面有三个核心文件夹:②地址1(xxl-job-admin-extend):https://github.com/dwhgygzt/xxl-job-admin-extend。

qq_43388893的博客 2434

PCIe Electrical PHY(4)-PCIE SPEC第8章指标讲解

1.1 PCIE TX SPEC TX主要关心两类参数,一类是Voltage Parameters,一类是Jitter Parameters。 其中Voltage相关参数主要关心不同preset下差分电压幅度的准确性。以及共模电压的稳定性。 PCIE spec中对Jitter相关的参数测量定义如下: 分为两大类:DDJ(Data dependent Jitter)和UJ(Uncorrelated ...

maxwell2ic的博客 5950

Springboot 项目整合集成 xxl-job ,xxl-job在Springboot 项目上的使用

XXL-JOB 是一个开源的、轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。项目github下载地址 点击查看,项目使用文档点击查看 首先我们去github 或者 码云 上下载最新的 xxl-job的代码 调度数据库初始化SQL脚本,脚本位置/xxl-job/doc/db/tables_xxl_job.sql ,导入到我们的数据库中,...

huqiankunlol的博客 5161

从零开始用TS开发babylonjs - 本机环境搭建

babylonjs,初始化本地安装,web3d引擎

han3527638的专栏 794

AISHELL-1中文语音数据集实战:从下载到训练你的第一个ASR模型(附完整代码)

本文详细介绍了如何使用AISHELL-1中文语音数据集从数据准备到训练端到端语音识别模型的全流程。AISHELL-1作为国内首个开源的普通话语音数据集,包含178小时高质量录音,适合中文自动语音识别(ASR)系统开发。文章涵盖数据下载、预处理、Conformer-CTC模型训练、评估及优化策略,并附完整代码实现。

garlic的博客 1118

XXL-JOB在SpringBoot中的集成

在SpringBoot中利用XXL-JOB实现灵活控制的分片处理方案,可以有效提升大规模、复杂任务的处理效率和可靠性。通过合理配置XXL-JOB的依赖、参数和路由策略,结合SpringBoot的自动装配和事件监听机制,可以方便地实现任务的调度与管理。同时,注意任务执行过程中的阻塞处理和数据一致性等问题,以确保任务的正确执行和系统的稳定运行。

shiming8879的博客 1155

Transformer实战(32)——Transformer模型压缩

在本节中,我们学习了如何在硬件资源受限的情况下减轻运行大模型的负担。我们介绍了如何通过蒸馏、剪枝和量化从训练好的模型中提取高效模型。预训练轻量级的通用语言模型(如 DistilBERT) 可以在各种任务上进行微调,并表现出与非蒸馏模型相当的性能。随着数据量的不断增加,我们希望模型能够更快地运行,在这方面,高效 Transformer 起着至关重要的作用。

盼小辉丶的博客 2546

【springboot】集成xxl-job(分布式任务调度平台)

xxl-job分布式任务调度平台

GodFatherMisZhao的博客 2544

【回眸】Tessy 单元测试软件使用指南(三)怎么打桩和指针赋值和测试

本文介绍了当使用Tessy对软件进行单元测试时如何打桩和指针相关测试的注意事项及操作要点,希望能给正在摸索Tessy的网友一点点启发。

啤酒鸭的物联网开发记录博客 1万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: 我是疫情期间的幸运儿
下一篇: Spring Security前后端分离最佳实践(登录+JWT)
太空眼睛
太空眼睛 新星创作者: Java技术领域 新星创作者: Java技术领域
博客等级 码龄20年 2万+粉丝 145原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太空眼睛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值