Python: gRPC timeout

This commit is contained in:
Gaute Lindkvist 2019-06-06 10:57:07 +02:00
parent c075f7b352
commit df2fe42c4a
3 changed files with 28 additions and 7 deletions

View File

@ -112,6 +112,7 @@
#include "cvfProgramOptions.h" #include "cvfProgramOptions.h"
#include "cvfqtUtils.h" #include "cvfqtUtils.h"
#include <QDebug>
#include <QDir> #include <QDir>
#include <QErrorMessage> #include <QErrorMessage>
#include <QFileDialog> #include <QFileDialog>
@ -1238,7 +1239,7 @@ void RiaGuiApplication::launchGrpcServer()
m_grpcServer->runInThread(); m_grpcServer->runInThread();
m_idleTimer = new QTimer(this); m_idleTimer = new QTimer(this);
connect(m_idleTimer, SIGNAL(timeout()), this, SLOT(runIdleProcessing())); connect(m_idleTimer, SIGNAL(timeout()), this, SLOT(runIdleProcessing()));
m_idleTimer->start(0); m_idleTimer->start(5);
#endif #endif
} }
@ -1696,7 +1697,24 @@ void RiaGuiApplication::runIdleProcessing()
} }
else if (!caf::ProgressInfoStatic::isRunning()) else if (!caf::ProgressInfoStatic::isRunning())
{ {
m_grpcServer->processAllQueuedRequests(); static int idleIterationCount = 0;
int iterationInterval = 0;
if (m_grpcServer->processAllQueuedRequests() > 0)
{
idleIterationCount = 0;
}
else
{
idleIterationCount = std::min(++idleIterationCount, 500);
if (idleIterationCount == 500)
{
iterationInterval = 5;
}
}
if (iterationInterval != m_idleTimer->interval())
{
m_idleTimer->setInterval(iterationInterval);
}
} }
#endif #endif
} }

View File

@ -61,7 +61,7 @@ public:
void run(); void run();
void runInThread(); void runInThread();
void initialize(); void initialize();
void processAllQueuedRequests(); size_t processAllQueuedRequests();
void quit(); void quit();
private: private:
@ -168,7 +168,7 @@ void RiaGrpcServerImpl::initialize()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RiaGrpcServerImpl::processAllQueuedRequests() size_t RiaGrpcServerImpl::processAllQueuedRequests()
{ {
std::list<RiaGrpcCallbackInterface*> waitingRequests; std::list<RiaGrpcCallbackInterface*> waitingRequests;
{ {
@ -176,6 +176,8 @@ void RiaGrpcServerImpl::processAllQueuedRequests()
std::lock_guard<std::mutex> requestLock(m_requestMutex); std::lock_guard<std::mutex> requestLock(m_requestMutex);
waitingRequests.swap(m_unprocessedRequests); waitingRequests.swap(m_unprocessedRequests);
} }
size_t count = waitingRequests.size();
// Now free to receive new requests from client while processing the current ones. // Now free to receive new requests from client while processing the current ones.
while (!waitingRequests.empty()) while (!waitingRequests.empty())
{ {
@ -183,6 +185,7 @@ void RiaGrpcServerImpl::processAllQueuedRequests()
waitingRequests.pop_front(); waitingRequests.pop_front();
process(method); process(method);
} }
return count;
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -339,9 +342,9 @@ void RiaGrpcServer::initialize()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RiaGrpcServer::processAllQueuedRequests() size_t RiaGrpcServer::processAllQueuedRequests()
{ {
m_serverImpl->processAllQueuedRequests(); return m_serverImpl->processAllQueuedRequests();
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -41,7 +41,7 @@ public:
bool isRunning() const; bool isRunning() const;
void run(); void run();
void runInThread(); void runInThread();
void processAllQueuedRequests(); size_t processAllQueuedRequests();
void quit(); void quit();
static int findAvailablePortNumber(int defaultPortNumber); static int findAvailablePortNumber(int defaultPortNumber);
static void setReceivedExitRequest(); static void setReceivedExitRequest();