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

wz2cool / local-queue / #12

29 Jan 2025 08:22AM UTC coverage: 93.366% (+0.5%) from 92.857%
#12

push

wz2cool
add consumeFrom

1 of 1 new or added line in 1 file covered. (100.0%)

11 existing lines in 3 files now uncovered.

380 of 407 relevant lines covered (93.37%)

0.93 hits per line

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

96.15
/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
import com.github.wz2cool.localqueue.model.enums.ConsumeFromWhere;
9

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

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

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

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

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

35

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

43
    @Override
44
    public synchronized IConsumer getConsumer(final String consumerId) {
45
        return getConsumer(consumerId, ConsumeFromWhere.LAST);
1✔
46
    }
47

48
    @Override
49
    public synchronized IConsumer getConsumer(final String consumerId, final ConsumeFromWhere consumeFromWhere) {
50
        SimpleConsumer consumer = consumerMap.get(consumerId);
1✔
51
        if (Objects.nonNull(consumer)) {
1✔
UNCOV
52
            return consumer;
×
53
        }
54

55
        consumer = new SimpleConsumer(new SimpleConsumerConfig.Builder()
1✔
56
                .setDataDir(config.getDataDir())
1✔
57
                .setConsumerId(consumerId)
1✔
58
                .setConsumeFromWhere(consumeFromWhere)
1✔
59
                .build());
1✔
60
        consumerMap.put(consumerId, consumer);
1✔
61
        return consumer;
1✔
62
    }
63

64
    @Override
65
    public void close() {
66
        simpleProducer.close();
1✔
67
        for (Map.Entry<String, SimpleConsumer> entry : consumerMap.entrySet()) {
1✔
68
            entry.getValue().close();
1✔
69
        }
1✔
70
    }
1✔
71
}
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