mirror of
https://github.com/kestra-io/kestra.git
synced 2025-12-19 18:05:41 -05:00
chore(system): add WorkerJobQueueInterface to properly pass workerId on subscribe
This commit is contained in:
committed by
Florian Hussonnois
parent
31dbecec77
commit
194ae826e5
@@ -9,11 +9,11 @@ import io.kestra.core.models.templates.Template;
|
||||
import io.kestra.core.models.triggers.Trigger;
|
||||
import io.kestra.core.queues.QueueFactoryInterface;
|
||||
import io.kestra.core.queues.QueueInterface;
|
||||
import io.kestra.core.queues.WorkerJobQueueInterface;
|
||||
import io.kestra.core.runners.*;
|
||||
import io.micronaut.context.ApplicationContext;
|
||||
import io.micronaut.context.annotation.Bean;
|
||||
import io.micronaut.context.annotation.Factory;
|
||||
import io.micronaut.context.annotation.Prototype;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Named;
|
||||
import jakarta.inject.Singleton;
|
||||
@@ -45,7 +45,7 @@ public class MysqlQueueFactory implements QueueFactoryInterface {
|
||||
@Singleton
|
||||
@Named(QueueFactoryInterface.WORKERJOB_NAMED)
|
||||
@Bean(preDestroy = "close")
|
||||
public QueueInterface<WorkerJob> workerJob() {
|
||||
public WorkerJobQueueInterface workerJob() {
|
||||
return new MysqlWorkerJobQueue(applicationContext);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package io.kestra.runner.mysql;
|
||||
|
||||
import io.kestra.core.exceptions.DeserializationException;
|
||||
import io.kestra.core.queues.WorkerJobQueueInterface;
|
||||
import io.kestra.core.runners.WorkerJob;
|
||||
import io.kestra.core.utils.Either;
|
||||
import io.kestra.jdbc.JdbcWorkerJobQueueService;
|
||||
@@ -14,22 +15,22 @@ import java.util.function.Consumer;
|
||||
* This specific queue is used to be able to save WorkerJobRunning for each WorkerJob
|
||||
*/
|
||||
@Slf4j
|
||||
public class MysqlWorkerJobQueue extends MysqlQueue<WorkerJob> {
|
||||
public class MysqlWorkerJobQueue extends MysqlQueue<WorkerJob> implements WorkerJobQueueInterface {
|
||||
private final JdbcWorkerJobQueueService jdbcWorkerJobQueueService;
|
||||
|
||||
public MysqlWorkerJobQueue(ApplicationContext applicationContext) {
|
||||
super(WorkerJob.class, applicationContext);
|
||||
this.jdbcWorkerJobQueueService = applicationContext.getBean(JdbcWorkerJobQueueService.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Runnable receive(String consumerGroup, Class<?> queueType, Consumer<Either<WorkerJob, DeserializationException>> consumer) {
|
||||
return jdbcWorkerJobQueueService.receive(this, consumerGroup, queueType, consumer);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
super.close();
|
||||
jdbcWorkerJobQueueService.close();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Runnable subscribe(String workerId, String workerGroup, Consumer<Either<WorkerJob, DeserializationException>> consumer) {
|
||||
return jdbcWorkerJobQueueService.subscribe(this, workerId, workerGroup, consumer);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user