• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

wz2cool / local-queue / #5

27 Jan 2025 01:17PM UTC coverage: 92.442%. First build
#5

push

web-flow
Merge pull request #3 from wz2cool/0.0.5

0.0.5

71 of 82 new or added lines in 5 files covered. (86.59%)

318 of 344 relevant lines covered (92.44%)

0.92 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

95.83
/src/main/java/com/github/wz2cool/localqueue/impl/SimpleQueue.java
1
package com.github.wz2cool.localqueue.impl;
2

3
import com.github.wz2cool.localqueue.IQueue;
4
import com.github.wz2cool.localqueue.IConsumer;
5
import com.github.wz2cool.localqueue.model.config.SimpleQueueConfig;
6
import com.github.wz2cool.localqueue.model.config.SimpleConsumerConfig;
7
import com.github.wz2cool.localqueue.model.config.SimpleProducerConfig;
8

9
import java.util.Map;
10
import java.util.Objects;
11
import java.util.concurrent.ConcurrentHashMap;
12

13
/**
14
 * simple queue
15
 *
16
 * @author frank
17
 */
18
public class SimpleQueue implements IQueue, AutoCloseable {
19

20
    private final SimpleQueueConfig config;
21
    private final SimpleProducer simpleProducer;
22
    private final Map<String, SimpleConsumer> consumerMap = new ConcurrentHashMap<>();
1✔
23

24
    public SimpleQueue(SimpleQueueConfig config) {
1✔
25
        this.config = config;
1✔
26
        this.simpleProducer = getProducer();
1✔
27
    }
1✔
28

29
    @Override
30
    public boolean offer(String message) {
31
        return simpleProducer.offer(message);
1✔
32
    }
33

34

35
    private SimpleProducer getProducer() {
36
        return new SimpleProducer(new SimpleProducerConfig.Builder()
1✔
37
                .setDataDir(config.getDataDir())
1✔
38
                .setKeepDays(config.getKeepDays())
1✔
39
                .build());
1✔
40
    }
41

42
    @Override
43
    public synchronized IConsumer getConsumer(final String consumerId) {
44
        SimpleConsumer consumer = consumerMap.get(consumerId);
1✔
45
        if (Objects.nonNull(consumer)) {
1✔
NEW
46
            return consumer;
×
47
        }
48

49
        consumer = new SimpleConsumer(new SimpleConsumerConfig.Builder()
1✔
50
                .setDataDir(config.getDataDir())
1✔
51
                .setConsumerId(consumerId)
1✔
52
                .build());
1✔
53
        consumerMap.put(consumerId, consumer);
1✔
54
        return consumer;
1✔
55
    }
56

57
    @Override
58
    public void close() {
59
        simpleProducer.close();
1✔
60
        for (Map.Entry<String, SimpleConsumer> entry : consumerMap.entrySet()) {
1✔
61
            entry.getValue().close();
1✔
62
        }
1✔
63
    }
1✔
64
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc