Skip to content

peiqiang/buffer-trigger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

buffer-trigger Build Status Coverage Status

A local data buffer with customizable data trigger

  • multiple data trigger
  • buffer container can be customized
  • jdk1.8 only

Get Started

<dependency>
    <groupId>com.github.phantomthief</groupId>
    <artifactId>buffer-trigger</artifactId>
    <version>0.2.6-SNAPSHOT</version>
</dependency>

Usage

// declare
BufferTrigger<String> buffer = SimpleBufferTrigger.<String, Set<String>> newBuilder() //
        .on(3, TimeUnit.SECONDS, 1) //
        .on(2, TimeUnit.SECONDS, 10) //
        .on(1, TimeUnit.SECONDS, 10000) //
        .consumer(this::out) //
        .setContainer(ConcurrentSkipListSet::new, Set::add) // default is Collections.newSetFromMap(new ConcurrentHashMap<>())
        .build();
        
// enqueue
buffer.enqueue("i'm ok");

// consumer declare
private void out(Collection<String> set) {
	set.forEach(System.out::println);
}

// batch consumer blocking queue
BufferTrigger<String> buffer = BatchConsumeBlockingQueueTrigger.<String> newBuilder() //
                .batchConsumerSize(3) //
                .setConsumer(this::out) //
                .queueCapacity(5) //
                .build();
    

Special Thanks

perlmonk with his great team gives me a huge help. (https://github.com/aloha-app)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%