mirror of
https://github.com/QuasarApp/qTbot.git
synced 2025-04-26 05:44:32 +00:00
added more logs and mutex
This commit is contained in:
parent
a882573b18
commit
7707eaf045
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user