MessageAsmMethodBoost优化

This commit is contained in:
redkale
2024-08-13 15:27:54 +08:00
parent cb9b57a04c
commit 44bb9ac086
14 changed files with 414 additions and 30 deletions

View File

@@ -0,0 +1,46 @@
/*
*/
package org.redkale.test.mq;
import org.redkale.convert.json.JsonConvert;
/**
*
* @author zhangjx
*/
public class TestBean {
private int userid;
private String message;
public TestBean() {}
public TestBean(int userid, String message) {
this.userid = userid;
this.message = message;
}
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@Override
public String toString() {
return JsonConvert.root().convertTo(this);
}
}

View File

@@ -0,0 +1,33 @@
/*
*/
package org.redkale.test.mq;
import org.redkale.mq.MessageConext;
import org.redkale.mq.MessageConsumer;
import org.redkale.mq.ResourceConsumer;
import org.redkale.util.AnyValue;
/**
*
* @author zhangjx
*/
@ResourceConsumer(mq = "mymq", topics = "test_bean_topic")
public class TestMessageConsumer implements MessageConsumer<TestBean> {
@Override
public void init(AnyValue config) {
System.out.println("执行 TestMessageConsumer.init");
}
@Override
public void onMessage(MessageConext context, TestBean message) {
System.out.println("TestMessageConsumer消费消息, context: " + context + ", message: " + message);
}
@Override
public void destroy(AnyValue config) {
System.out.println("执行 TestMessageConsumer.destroy");
}
}

View File

@@ -0,0 +1,23 @@
/*
*/
package org.redkale.test.mq;
import org.redkale.annotation.Component;
import org.redkale.mq.Messaged;
import org.redkale.service.AbstractService;
/**
*
* @author zhangjx
*/
@Component
public class TestMessageFacde extends AbstractService {
@Messaged(mq = "mymq", topics = "test_bean_topic", group = "group_5")
public int runMessage5(TestBean message) {
System.out.println("TestMessageFacde 消费消息5, message: " + message);
return 0;
}
}

View File

@@ -0,0 +1,54 @@
/*
*/
package org.redkale.test.mq;
import org.redkale.mq.MessageConext;
import org.redkale.mq.MessageProducer;
import org.redkale.mq.Messaged;
import org.redkale.mq.ResourceProducer;
import org.redkale.service.AbstractService;
import org.redkale.util.AnyValue;
/**
*
* @author zhangjx
*/
public class TestMessageService extends AbstractService {
@ResourceProducer(mq = "mymq")
private MessageProducer producer;
@Override
public void init(AnyValue config) {
sendMessage();
}
public void sendMessage() {
TestBean bean = new TestBean(12345, "this is a message");
System.out.println("生产消息: " + bean);
producer.sendMessage("test_bean_topic", bean).whenComplete((v, t) -> {
if (t != null) {
t.printStackTrace();
}
System.out.println("消息发送结果: " + v);
});
}
@Messaged(mq = "mymq", topics = "test_bean_topic", group = "group_2")
protected void runMessage2(MessageConext context, TestBean message) {
System.out.println("TestMessageService 消费消息2, context: " + context + ", message: " + message);
}
@Messaged(mq = "mymq", topics = "test_bean_topic", group = "group_3")
protected void runMessage3(TestBean message) {
System.out.println("TestMessageService 消费消息3, message: " + message);
}
@Messaged(mq = "mymq", topics = "test_bean_topic", group = "group_4")
protected int runMessage4(TestBean message) {
System.out.println("TestMessageService 消费消息4, message: " + message);
return 0;
}
}

View File

@@ -0,0 +1,76 @@
/*
*/
package org.redkale.test.mq;
import org.redkale.annotation.AutoLoad;
import org.redkale.convert.ConvertType;
import org.redkale.mq.MessageConext;
import org.redkale.mq.MessageConsumer;
import org.redkale.mq.ResourceConsumer;
@AutoLoad(false)
public class _DynLocalTestMessageService extends TestMessageService {
public _DynLocalTestMessageService() {
super();
System.out.println("哈哈哈哈哈");
}
@AutoLoad(false)
@ResourceConsumer(
topics = {"test_bean_topic"},
required = true,
group = "group_4",
convertType = ConvertType.JSON,
mq = "mymq")
public static class DynMessageConsumerx1 implements MessageConsumer<TestBean> {
private _DynLocalTestMessageService service;
public DynMessageConsumerx1(_DynLocalTestMessageService service) {
this.service = service;
}
public void onMessage(MessageConext context, TestBean message) {
this.service.runMessage4(message);
}
}
@AutoLoad(false)
@ResourceConsumer(
topics = {"test_bean_topic"},
required = true,
group = "group_3",
convertType = ConvertType.JSON,
mq = "mymq")
public static class DynMessageConsumerx2 implements MessageConsumer<TestBean> {
private _DynLocalTestMessageService service;
public DynMessageConsumerx2(_DynLocalTestMessageService service) {
this.service = service;
}
public void onMessage(MessageConext context, TestBean message) {
this.service.runMessage3(message);
}
}
@AutoLoad(false)
@ResourceConsumer(
topics = {"test_bean_topic"},
required = true,
group = "group_2",
convertType = ConvertType.JSON,
mq = "mymq")
public static class DynMessageConsumerx3 implements MessageConsumer<TestBean> {
private _DynLocalTestMessageService service;
public DynMessageConsumerx3(_DynLocalTestMessageService service) {
this.service = service;
}
public void onMessage(MessageConext context, TestBean message) {
this.service.runMessage2(context, message);
}
}
}