Ich frage mich, wie Redis NOSQL Aufrufe in die C++ Std Threading-Bibliothek Code aus dem C++ Concurrency in Action Book implementieren.Threading Redis-Verbindung in C++
ich die Github Repo von
https://github.com/subjam/concurrency-in-action
Quelldatei bin mit https://github.com/subjam/concurrency-in-action/blob/master/ch7/stack.cpp
ich mich gefragt, ob ich meine Redis NoSQL-Verbindungscode in der push() Funktion platziert ist weise.
Ich verwende auch Redox, die ein C++ - Wrapper ist, der die Hiredis C-Bibliothek enthält.
https://github.com/hmartiro/redox
Ich bin mit dem Teilnehmer NoSQL-Muster, die in der Threading push() Funktion enthalten sein würde. Dies würde die Verbindung und die Abfrage jedes Mal ausführen, wenn ein Push erfolgt, aber kein Semaphor/Mutex würde benötigt werden (nehme ich an). In Zeile 145 von push()
in stack.cpp
, kann ich die push
Funktion wie neu schreiben?
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);
});
}
Oder sollte ich die folgende Verbindungscode einmal machen, bevor die push() Funktion ausführt?
Redox rdx; Subscriber sub;
if(!rdx.connect() || !sub.connect()) return ;
Würde ein Einfädeln Konflikt da sein, wenn ich den Redis Verbindungscode halte außerhalb der push()
Oder gibt es einen optimalere Weg, dies zu Codierung innerhalb stack.cpp? Danke