Мне было интересно, как реализовать Redis NOSQL-вызовы в код библиотеки C++ Std Threading из C++ параллелизма в книге действий.Threading Redis connection in C++
Я использую GitHub Repo https://github.com/subjam/concurrency-in-action
исходный файл
https://github.com/subjam/concurrency-in-action/blob/master/ch7/stack.cpp
мне было интересно, если я разместил свой код подключения Redis NoSQL в функции толчок() имеет смысл.
Я также использую Redox, который является C++-оболочкой, которая включает библиотеку Hiredis C.
https://github.com/hmartiro/redox
Я использую абонентский NoSQL образец, который будет включен в функции Резьбонарезного толчка(). Это приведет к тому, что соединение и запрос будут выполняться каждый раз, когда будет нажатие, но семафор/мьютекс не потребуется (я полагаю). На строке 145 push()
в stack.cpp
можно ли переписать функцию push
как?
void push(stack<int>* s)
{
Redox rdx; Subscriber sub;
if(!rdx.connect() || !sub.connect()) return;
sub.subscribe("hello", [](const string& topic, const string& msg) {
…parse msg fields into data structure …
s->push(data);
});
}
Или должен ли я сделать следующий код соединения один раз перед выполнением функции push()?
Redox rdx; Subscriber sub;
if(!rdx.connect() || !sub.connect()) return ;
там будет ли это резьб конфликт, если я держу код подключения Redis вне push()
Или есть более оптимальный способ кодирования это в stack.cpp? Thanks