新增:delay 延时事件api

This commit is contained in:
lxy 2021-02-01 19:40:22 +08:00
parent 3c1c38207f
commit e5b5c66835
2 changed files with 11 additions and 3 deletions

View File

@ -277,6 +277,10 @@ public abstract class ZHubClient extends AbstractConsumer implements IConsumer,
send("broadcast", topic, toStr(v)); send("broadcast", topic, toStr(v));
} }
public <V> void delay(String topic, V v, int delay) {
send("delay", topic, toStr(v), String.valueOf(delay));
}
@Override @Override
public void subscribe(String topic, Consumer<String> consumer) { public void subscribe(String topic, Consumer<String> consumer) {
addEventType(EventType.of(topic, consumer)); addEventType(EventType.of(topic, consumer));

View File

@ -10,11 +10,13 @@ import java.util.List;
import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.function.Function; import java.util.function.Function;
import java.util.logging.Logger;
/** /**
* 消息发布订阅测试 * 消息发布订阅测试
*/ */
public class AppTest { public class AppTest {
Logger logger = Logger.getLogger("");
@Test @Test
public void runConsumer() { public void runConsumer() {
@ -22,8 +24,8 @@ public class AppTest {
//启动并开启消费监听 //启动并开启消费监听
MyConsumer consumer = Application.singleton(MyConsumer.class); MyConsumer consumer = Application.singleton(MyConsumer.class);
consumer.subscribe("a-1", str -> { consumer.subscribe("a", str -> {
System.out.println("我收到了消息 a 事件:" + str); logger.info("我收到了消息 a 事件:" + str);
}); });
consumer.timer("a", () -> { consumer.timer("a", () -> {
@ -38,7 +40,9 @@ public class AppTest {
consumer.timer("b", () -> { consumer.timer("b", () -> {
System.out.println(Utility.now() + " ----------------- timer b 执行了"); System.out.println(Utility.now() + " ----------------- timer b 执行了");
}); });
consumer.delay("a", "1", 3000);
consumer.delay("a", "1", 5000);
logger.info("----");
Thread.sleep(60_000 * 60); Thread.sleep(60_000 * 60);
} catch (Exception e) { } catch (Exception e) {