Данный проект представляет собой упрощённую обёртку xxl-job-core в виде spring boot starter, что позволяет разрабатывать executor для xxl-job с использованием Spring Boot.
Создайте Spring Boot проект и добавьте следующие зависимости:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.4.RELEASE</version>
<exclusions>
<!-- exclude tomcat -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
<version>2.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>cn.centychen</groupId>
<artifactId>xxl-job-spring-boot-starter</artifactId>
<version>1.0.1-RELEASE</version>
</dependency>
Добавьте следующую конфигурацию xxl-job или используйте значения по умолчанию:
xxl-job:
admin:
admin-addresses: http://localhost:8080/xxl-job-admin
executor:
app-name: xxl-job-spring-boot-starter-example #默认为 xxl-job-executor
access-token: #默认为空
log-path: logs/applogs/xxl-job/jobhandler #默认为 logs/applogs/xxl-job/jobhandler
log-retention-days: 10 #默认为 10
ip: #默认为空
port: 9999 #默认为 9999
Создайте класс DemoJobHandler.class, который наследуется от IJobHandler и реализует его методы. Пример кода:
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.JobHandler;
import com.xxl.job.core.log.XxlJobLogger;
import org.springframework.stereotype.Component;
@JobHandler("demoJobHandler")
@Component
public class DemoJobHandler extends IJobHandler {
@Override
public ReturnT<String> execute(String s) throws Exception {
XxlJobLogger.log("This is a demo job.");
Thread.sleep(5 * 1000L);
return SUCCESS;
}
}
В диспетчере задач -> исполнители добавьте новый исполнитель.
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.4.RELEASE)
2019-05-10 14:26:16.523 INFO 1444 --- [ main] c.c.s.s.xxljob.example.Application : Starting Application on centdeMacBook-Pro.local with PID 1444 (/Users/cent/source-java/xxl-job-spring-boot-starter-example/target/classes started by cent in /Users/cent/source-java/xxl-job-spring-boot-starter-example)
2019-05-10 14:26:16.532 INFO 1444 --- [ main] c.c.s.s.xxljob.example.Application : No active profile set, falling back to default profiles: default
2019-05-10 14:26:19.039 WARN 1444 --- [ main] io.undertow.websockets.jsr : UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
2019-05-10 14:26:19.067 INFO 1444 --- [ main] io.undertow.servlet : Initializing Spring embedded WebApplicationContext
2019-05-10 14:26:19.067 INFO 1444 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1641 ms
2019-05-10 14:26:19.351 INFO 1444 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-05-10 14:26:19.483 INFO 1444 --- [ main] c.c.s.s.x.a.XxlJobAutoConfiguration : >>>>>>>>>>> xxl job config init...
2019-05-10 14:26:19.490 INFO 1444 --- [ main] c.xxl.job.core.executor.XxlJobExecutor : >>>>>>>>>>> xxl-job register jobhandler success, name:demoJobHandler, jobHandler:cn.centychen.springboot.starter.xxljob.example.handler.DemoJobHandler@660f0c
2019-05-10 14:26:19.543 INFO 1444 --- [ main] c.x.r.r.provider.XxlRpcProviderFactory : >>>>>>>>>>> xxl-rpc, provider factory add service success. serviceKey = com.xxl.job.core.biz.ExecutorBiz, serviceBean = class
``` **com.xxl.job.core.biz.impl.ExecutorBizImpl**
2019-05-10 14:26:19.699 INFO 1444 --- [ main] org.xnio : XNIO версия 3.3.8.Final
2019-05-10 14:26:19.714 INFO 1444 --- [ main] org.xnio.nio : Версия реализации XNIO NIO 3.3.8.Final
2019-05-10 14:26:19.809 INFO 1444 --- [ main] o.s.b.w.e.u.UndertowServletWebServer : Undertow запущен на порту(ах) 8080 (http) с контекстным путём ''
2019-05-10 14:26:19.814 INFO 1444 --- [ main] c.c.s.s.xxljob.example.Application : Приложение запущено за 4,35 секунды (JVM работает в течение 6,302)
2019-05-10 14:26:19.831 INFO 1444 --- [ Thread-14] com.xxl.rpc.remoting.net.Server : >>>>>>>>>>> xxl-rpc удалённый сервер успешно запущен, nettype = com.xxl.rpc.remoting.net.impl.netty_http.server.NettyHttpServer, port = 9999
*После успешного запуска исполнителя в центре управления исполнителями можно просмотреть регистрационную информацию.*
### Добавление задачи планирования
В центре управления планированием -> управление задачами добавьте задачу планирования, настроив её следующим образом:
* *После запуска задачи планирования просмотрите журнал планирования.*
* *Запустите задачу планирования и просмотрите журнал задач.*
# Пример исходного кода
— Код Юнь: [centychen/xxl-job-spring-boot-starter-example](https://gitee.com/centy/xxl-job-spring-boot-starter-example.git)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )