mirror of
https://github.com/QuasarApp/qTbot.git
synced 2025-04-26 05:44:32 +00:00
commit
2e440aba9a
@ -115,7 +115,23 @@ void IBot::setParallelActiveNetworkThreads(int newParallelActiveNetworkThreads)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void IBot::setCurrentParallelActiveNetworkThreads(int newParallelActiveNetworkThreads) {
|
void IBot::setCurrentParallelActiveNetworkThreads(int newParallelActiveNetworkThreads) {
|
||||||
|
bool wasBusy = _currentParallelActiveNetworkThreads == _parallelActiveNetworkThreads;
|
||||||
|
static bool lastMessageWasFree = false;
|
||||||
|
|
||||||
_currentParallelActiveNetworkThreads = newParallelActiveNetworkThreads;
|
_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 {
|
int IBot::reqestLimitPerSecond() const {
|
||||||
@ -131,9 +147,11 @@ IBot::sendRequest(const QSharedPointer<iRequest> &rquest) {
|
|||||||
auto&& responce = QSharedPointer<QPromise<QByteArray>>::create();
|
auto&& responce = QSharedPointer<QPromise<QByteArray>>::create();
|
||||||
responce->start();
|
responce->start();
|
||||||
|
|
||||||
|
{
|
||||||
|
QMutexLocker lock(&_mutex);
|
||||||
_requestQueue.insert(makeKey(rquest->priority()),
|
_requestQueue.insert(makeKey(rquest->priority()),
|
||||||
RequestData{rquest, "", responce});
|
RequestData{rquest, "", responce});
|
||||||
|
}
|
||||||
|
|
||||||
if (!_requestExecutor->isActive()) {
|
if (!_requestExecutor->isActive()) {
|
||||||
handleEcxecuteRequest();
|
handleEcxecuteRequest();
|
||||||
@ -150,8 +168,12 @@ IBot::sendRequest(const QSharedPointer<iRequest> &rquest,
|
|||||||
auto&& responce = QSharedPointer<QPromise<QByteArray>>::create();
|
auto&& responce = QSharedPointer<QPromise<QByteArray>>::create();
|
||||||
responce->start();
|
responce->start();
|
||||||
|
|
||||||
|
{
|
||||||
|
QMutexLocker lock(&_mutex);
|
||||||
_requestQueue.insert(makeKey(rquest->priority()),
|
_requestQueue.insert(makeKey(rquest->priority()),
|
||||||
RequestData{rquest, pathToResult, responce});
|
RequestData{rquest, pathToResult, responce});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!_requestExecutor->isActive()) {
|
if (!_requestExecutor->isActive()) {
|
||||||
handleEcxecuteRequest();
|
handleEcxecuteRequest();
|
||||||
@ -184,6 +206,8 @@ void IBot::handleIncomeNewUpdate(const QSharedPointer<iUpdate> & message) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void IBot::handleEcxecuteRequest() {
|
void IBot::handleEcxecuteRequest() {
|
||||||
|
QMutexLocker lock(&_mutex);
|
||||||
|
|
||||||
if (!_requestQueue.size()) {
|
if (!_requestQueue.size()) {
|
||||||
_requestExecutor->stop();
|
_requestExecutor->stop();
|
||||||
return;
|
return;
|
||||||
|
@ -305,7 +305,7 @@ signals:
|
|||||||
/**
|
/**
|
||||||
* @brief sigReceiveUpdate emit when but receive any updates from users.
|
* @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.
|
* @brief sigStopRequire just custm event for stop bot if tou use services.
|
||||||
@ -339,6 +339,8 @@ private:
|
|||||||
int _currentParallelActiveNetworkThreads = 0;
|
int _currentParallelActiveNetworkThreads = 0;
|
||||||
int _parallelActiveNetworkThreads = 5;
|
int _parallelActiveNetworkThreads = 5;
|
||||||
|
|
||||||
|
QRecursiveMutex _mutex;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit a96691e39974196e4739fbbb16e13eab5060c0ee
|
Subproject commit f96d16ec9be058fc35f3966e0a8dfe7d62ad3fb1
|
Loading…
x
Reference in New Issue
Block a user