chore: initial commit
Some checks failed
Code Analysis / analysis (push) Failing after 2m59s

This commit is contained in:
2025-12-30 22:34:58 +07:00
commit 35a6349071
63 changed files with 2675 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
#pragma once
#include <condition_variable>
#include <functional>
#include <memory>
#include <mutex>
#include <queue>
#include <thread>
#include <vector>
#include <grpcpp/grpcpp.h>
#include "rediska/cache/lru/LRU.hpp"
#include "rediska/common/QueueMessage.hpp"
#include "rediska/common/types.hpp"
namespace rediska::worker {
class AsyncWorker {
public:
explicit AsyncWorker(size_t num_workers = 4, size_t cache_capacity = 1000);
~AsyncWorker();
void Start();
void Stop();
void Enqueue(QueueMessage msg);
bool IsRunning() const { return running_; }
private:
void WorkerLoop();
void ProcessMessage(QueueMessage& msg);
void InitializeCache();
std::vector<std::thread> workers_;
std::queue<QueueMessage> message_queue_;
std::mutex queue_mutex_;
std::condition_variable queue_cv_;
std::atomic<bool> running_{false};
size_t num_workers_;
std::unique_ptr<cache::LRU> cache_;
cache::LRUConfig cache_config_;
};
} // namespace rediska::worker