package com.qianwen.core.task.sender.rocket;
|
|
import java.util.Map;
|
import org.apache.rocketmq.client.producer.SendCallback;
|
import org.apache.rocketmq.client.producer.SendResult;
|
import org.apache.rocketmq.client.producer.SendStatus;
|
import org.apache.rocketmq.spring.core.RocketMQTemplate;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import com.qianwen.core.context.task.TaskActionListener;
|
import com.qianwen.core.context.task.TaskExecutionContext;
|
import com.qianwen.core.context.task.TaskSender;
|
import com.qianwen.core.tool.utils.Func;
|
import org.springframework.messaging.Message;
|
import org.springframework.messaging.support.MessageBuilder;
|
|
/* loaded from: blade-starter-task-9.3.0.0-SNAPSHOT.jar:org/springblade/core/task/sender/rocket/RocketTaskSender.class */
|
public class RocketTaskSender implements TaskSender {
|
private static final Logger log = LoggerFactory.getLogger(RocketTaskSender.class);
|
private final RocketMQTemplate rocketMQTemplate;
|
|
public RocketTaskSender(final RocketMQTemplate rocketMQTemplate) {
|
this.rocketMQTemplate = rocketMQTemplate;
|
}
|
|
public boolean syncSend(TaskExecutionContext object) {
|
SendResult sendResult = this.rocketMQTemplate.syncSend("task-center-topic", object);
|
if (sendResult.getSendStatus() == SendStatus.SEND_OK) {
|
log.info("[RocketTaskSender][同步发送任务:[{}] 发送成功,结果为:[{}]]", object.toString(), sendResult);
|
return true;
|
}
|
return false;
|
}
|
|
public void asyncSend(final TaskExecutionContext object, final TaskActionListener callback) {
|
this.rocketMQTemplate.asyncSend("task-center-topic", object, new SendCallback() { // from class: com.qianwen.core.task.sender.rocket.RocketTaskSender.1
|
public void onSuccess(SendResult sendResult) {
|
if (!Func.isNotEmpty(callback)) {
|
RocketTaskSender.log.info("[RocketTaskSender][异步发送任务:[{}] 发送成功,结果为:[{}]]", object.toString(), sendResult);
|
} else {
|
callback.onSuccess(object);
|
}
|
}
|
|
public void onException(Throwable throwable) {
|
if (!Func.isNotEmpty(callback)) {
|
RocketTaskSender.log.info("[RocketTaskSender][异步发送任务:[{}] 发送异常,异常为:[{}]]]", object.toString(), throwable);
|
} else {
|
callback.onFailure(object, throwable);
|
}
|
}
|
});
|
}
|
|
public void asyncSend(final TaskExecutionContext object, Map<String, Object> headers, final TaskActionListener callback) {
|
MessageBuilder<TaskExecutionContext> messageBuilder = MessageBuilder.withPayload(object);
|
if (Func.isNotEmpty(headers)) {
|
headers.forEach((key, value) -> {
|
messageBuilder.setHeaderIfAbsent(key, value);
|
});
|
}
|
Message<TaskExecutionContext> message = messageBuilder.build();
|
this.rocketMQTemplate.asyncSend("task-center-topic", message, new SendCallback() { // from class: com.qianwen.core.task.sender.rocket.RocketTaskSender.2
|
public void onSuccess(SendResult sendResult) {
|
if (!Func.isNotEmpty(callback)) {
|
RocketTaskSender.log.info("[RocketTaskSender][异步发送任务:[{}] 发送成功,结果为:[{}]]", object.toString(), sendResult);
|
} else {
|
callback.onSuccess(object);
|
}
|
}
|
|
public void onException(Throwable throwable) {
|
if (!Func.isNotEmpty(callback)) {
|
RocketTaskSender.log.info("[RocketTaskSender][异步发送任务:[{}] 发送异常,异常为:[{}]]]", object.toString(), throwable);
|
} else {
|
callback.onFailure(object, throwable);
|
}
|
}
|
});
|
}
|
|
public void asyncSendOrderly(final TaskExecutionContext object, String hashKey, final TaskActionListener callback) {
|
this.rocketMQTemplate.asyncSendOrderly("task-center-topic", object, hashKey, new SendCallback() { // from class: com.qianwen.core.task.sender.rocket.RocketTaskSender.3
|
public void onSuccess(SendResult sendResult) {
|
if (!Func.isNotEmpty(callback)) {
|
RocketTaskSender.log.info("[RocketTaskSender][异步发送任务:[{}] 发送成功,结果为:[{}]]", object.toString(), sendResult);
|
} else {
|
callback.onSuccess(object);
|
}
|
}
|
|
public void onException(Throwable throwable) {
|
if (!Func.isNotEmpty(callback)) {
|
RocketTaskSender.log.info("[RocketTaskSender][异步发送任务:[{}] 发送异常,异常为:[{}]]]", object.toString(), throwable);
|
} else {
|
callback.onFailure(object, throwable);
|
}
|
}
|
});
|
}
|
}
|