added more logs and mutex

This commit is contained in:
Andrei Yankovich 2025-02-19 13:28:56 +01:00
parent a882573b18
commit 7707eaf045
2 changed files with 32 additions and 6 deletions

View File

@ -115,7 +115,23 @@ void IBot::setParallelActiveNetworkThreads(int newParallelActiveNetworkThreads)
}
void IBot::setCurrentParallelActiveNetworkThreads(int newParallelActiveNetworkThreads) {
bool wasBusy = _currentParallelActiveNetworkThreads == _parallelActiveNetworkThreads;
static bool lastMessageWasFree = false;
_currentParallelActiveNetworkThreads = newParallelActiveNetworkThreads;
if (_currentParallelActiveNetworkThreads == _parallelActiveNetworkThreads) {
qInfo() << "All network threads are busy!";
lastMessageWasFree = false;
} else if (wasBusy) {
qInfo() << "Network threads are free! available: " << _currentParallelActiveNetworkThreads << " from " << _parallelActiveNetworkThreads;
lastMessageWasFree = false;
} else if (_currentParallelActiveNetworkThreads == 0 && !lastMessageWasFree) {
qInfo() << "All network threads are free!";
lastMessageWasFree = true;
}
}
int IBot::reqestLimitPerSecond() const {
@ -131,9 +147,11 @@ IBot::sendRequest(const QSharedPointer<iRequest> &rquest) {
auto&& responce = QSharedPointer<QPromise<QByteArray>>::create();
responce->start();
{
QMutexLocker lock(&_mutex);
_requestQueue.insert(makeKey(rquest->priority()),
RequestData{rquest, "", responce});
}
if (!_requestExecutor->isActive()) {
handleEcxecuteRequest();
@ -150,8 +168,12 @@ IBot::sendRequest(const QSharedPointer<iRequest> &rquest,
auto&& responce = QSharedPointer<QPromise<QByteArray>>::create();
responce->start();
{
QMutexLocker lock(&_mutex);
_requestQueue.insert(makeKey(rquest->priority()),
RequestData{rquest, pathToResult, responce});
}
if (!_requestExecutor->isActive()) {
handleEcxecuteRequest();
@ -184,6 +206,8 @@ void IBot::handleIncomeNewUpdate(const QSharedPointer<iUpdate> & message) {
}
void IBot::handleEcxecuteRequest() {
QMutexLocker lock(&_mutex);
if (!_requestQueue.size()) {
_requestExecutor->stop();
return;

View File

@ -305,7 +305,7 @@ signals:
/**
* @brief sigReceiveUpdate emit when but receive any updates from users.
*/
void sigReceiveUpdate(const QSharedPointer<iUpdate>& );
void sigReceiveUpdate(const QSharedPointer<qTbot::iUpdate>& );
/**
* @brief sigStopRequire just custm event for stop bot if tou use services.
@ -339,6 +339,8 @@ private:
int _currentParallelActiveNetworkThreads = 0;
int _parallelActiveNetworkThreads = 5;
QRecursiveMutex _mutex;
};