Add TQueue run_gc statistics.

GitOrigin-RevId: 371d38aa5c59d927b0f1e601f08ac7c7bbbdb137
This commit is contained in:
levlam 2020-07-24 02:42:54 +03:00
parent 33ba70b3e4
commit 70534a8aca
2 changed files with 19 additions and 5 deletions

View File

@ -212,12 +212,26 @@ class TQueueImpl : public TQueue {
return do_get(queue_id, q, from_id, forget_previous, now, result_events);
}
void run_gc(double now) override {
for (auto &it : queues_) {
for (auto &e : it.second.events.as_mutable_span()) {
try_pop(it.second, it.first, e, EventId(), now);
std::pair<uint64, uint64> run_gc(double now) override {
uint64 total_deleted_events = 0;
uint64 deleted_queues = 0;
for (auto it = queues_.begin(); it != queues_.end();) {
size_t deleted_events = 0;
for (auto &e : it->second.events.as_mutable_span()) {
if (e.expires_at < now) {
pop(it->second, it->first, e, EventId());
deleted_events++;
}
}
if (deleted_events == it->second.events.size()) {
deleted_queues++;
it = queues_.erase(it);
} else {
++it;
}
total_deleted_events += deleted_events;
}
return {deleted_queues, total_deleted_events};
}
size_t get_size(QueueId queue_id) override {

View File

@ -113,7 +113,7 @@ class TQueue {
virtual size_t get_size(QueueId queue_id) = 0;
virtual void run_gc(double now) = 0;
virtual std::pair<uint64, uint64> run_gc(double now) = 0;
virtual void close(Promise<> promise) = 0;
};