xxl-job(2.4.1)使用spring-mvc替换netty的功能

xxl-job(2.4.1)使用spring-mvc替换netty的功能

1、xxl-job-core引入spring-mvc的依赖。

	<!-- spring-web -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-web</artifactId>
		<version>${spring.version}</version>
		<scope>provided</scope>
	</dependency>

2、com.xxl.job.core.controller包下添加XxlJobController类。

package com.xxl.job.core.controller;

import com.xxl.job.core.biz.impl.ExecutorBizImpl;
import com.xxl.job.core.biz.model.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

/**

 @author xxx

 @date 2021/5/7
 */
@RestController
public class XxlJobController {
    @PostMapping("/beat")
    public ReturnT beat() {
        return new ExecutorBizImpl().beat();
    }

    @PostMapping("/idleBeat")
    public ReturnT idleBeat(@RequestBody IdleBeatParam param) {
        return new ExecutorBizImpl().idleBeat(param);
    }

    @PostMapping("/run")
    public ReturnT run(@RequestBody TriggerParam param) {
        return new ExecutorBizImpl().run(param);
    }

    @PostMapping("/kill")
    public ReturnT kill(@RequestBody KillParam param) {
        return new ExecutorBizImpl().kill(param);
    }

    @PostMapping("/log")
    public ReturnT log(@RequestBody LogParam param) {
        return new ExecutorBizImpl().log(param);
    }
}

3、修改com.xxl.job.core.server.EmbedServer的start方法,修改后为以下。

 public void start(final String address, final int port, final String appname, final String accessToken) {
        startRegistry(appname, address);
    }

4、删除com.xxl.job.core.server.EmbedServer类的变量executorBiz和thread,以及删除xxl-job-core的pom文件的netty依赖,之后代码报错的部分也删除,最终EmbedServer类如下。

package com.xxl.job.core.server;

import com.xxl.job.core.thread.ExecutorRegistryThread;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Copy from : https://github.com/xuxueli/xxl-rpc
 *
 * @author xuxueli 2020-04-11 21:25
 */
public class EmbedServer {
    private static final Logger logger = LoggerFactory.getLogger(EmbedServer.class);


    public void start(final String address, final int port, final String appname, final String accessToken) {
        startRegistry(appname, address);
    }

    public void stop() throws Exception {
        // stop registry
        stopRegistry();
        logger.info(">>>>>>>>>>> xxl-job remoting server destroy success.");
    }


    // ---------------------- registry ----------------------

    public void startRegistry(final String appname, final String address) {
        // start registry
        ExecutorRegistryThread.getInstance().start(appname, address);
    }

    public void stopRegistry() {
        // stop registry
        ExecutorRegistryThread.getInstance().toStop();
    }
}

5、因为要复用spring-boot容器的端口号,所以这里注册的端口号要和它保持一致,修改com.xxl.job.core.executor.XxlJobExecutor的initEmbedServer方法,注释掉以下代码。

//port = port > 0 ? port : NetUtil.findAvailablePort(9999);

6、修改xxl.job.executor模块的的application.properties的配置文件xxl.job.executor.port=${server.port}。

7、在 com.xxl.job.core.config包下新建Config类。

package com.xxl.job.core.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

/**

 @author xxx
 @date 2021/5/7
 */
@Configuration
@ComponentScan(basePackages = {"com.xxl.job.core.controller"})
public class Config {
}

8、

在.xxl.job.core的src/main/resources/META-INF文件夹下新建spring.factories文件,文件内容如下

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.xxl.job.core.config.Config

9、完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Docker中安装xxl-job2.4.1,可以按照以下步骤进行操作: 1. 首先,确保已经安装了Docker,并且可正常运行。 2. 打开终端,运行以下命令来拉取xxl-job的镜像: ``` docker pull xxl-job:2.4.1 ``` 这将下载xxl-job2.4.1的Docker镜像。 3. 创建并运行一个名为xxl-job的容器,可以使用以下命令: ``` docker run -d --name xxl-job -p 10010:10010 -v /usr/local/docker/xxl-job/log:/data/applogs xxl-job:2.4.1 ``` 这将在后台运行一个名为xxl-job的容器,并将主机的10010端口映射到容器的10010端口。还将容器内的日志目录挂载到主机的/usr/local/docker/xxl-job/log目录。 4. 确保服务器已经安装了MySQL数据库,如果没有安装,可以在服务器的Docker中安装一个MySQL实例。具体操作可以参考xxl-job项目自带的文档和SQL建表语句。 5. 最后,将xxl-job的jar包(test-xxl-job)放在与xxl-job相同的服务器Docker中进行部署。部署过程与上述部署xxl-job类似,只需将jar包名改为test-xxl-job即可。 这样,就完成了在Docker中安装xxl-job2.4.1的过程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [xxl-job整合 docker 部署](https://blog.csdn.net/m0_65775063/article/details/130881526)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一只尘世中迷途小书童

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

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

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

打赏作者

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

抵扣说明:

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

余额充值