From: APTX Date: Tue, 24 Jul 2012 19:40:40 +0000 (+0200) Subject: Add a way to fail requests that did not complete in a certain amount of time X-Git-Url: https://gitweb.tyo.aptx.org/?a=commitdiff_plain;h=06722d88468dfbb7a8b874884088b1523264a4c3;p=localmylist.git Add a way to fail requests that did not complete in a certain amount of time --- diff --git a/localmylist/database.cpp b/localmylist/database.cpp index 516f23b..2147c31 100644 --- a/localmylist/database.cpp +++ b/localmylist/database.cpp @@ -1220,6 +1220,31 @@ bool Database::clearFailedFileRenames() "WHERE failed_rename = true"); } +bool Database::clearFailedPendingRequests(int minutes) +{ + QSqlQuery &q = prepare( + "UPDATE pending_request " + " SET start = NULL, fail_count = fail_count + 1 " + " WHERE start IS NOT NULL " + " AND age(current_timestamp, start) > :interval "); + q.bindValue(":interval", QString::number(minutes) + " minutes"); + + return exec(q); +} + +bool Database::clearFailedPendingMyListUpdateRequests(int minutes) +{ + QSqlQuery &q = prepare( + "UPDATE pending_mylist_update " + " SET started = NULL, fail_count = fail_count + 1 " + " WHERE started IS NOT NULL " + " AND finished IS NULL " + " AND age(current_timestamp, started) > :interval "); + q.bindValue(":interval", QString::number(minutes) + " minutes"); + + return exec(q); +} + bool Database::truncateTitleData() { return exec("TRUNCATE TABLE anime_title"); diff --git a/localmylist/database.h b/localmylist/database.h index 9960d9b..751bc33 100644 --- a/localmylist/database.h +++ b/localmylist/database.h @@ -289,6 +289,9 @@ public slots: bool clearFileRenames(); bool clearFailedFileRenames(); + bool clearFailedPendingRequests(int minutes = 10); + bool clearFailedPendingMyListUpdateRequests(int minutes = 10); + bool truncateTitleData(); bool truncateMyListData(); bool truncateDatabase(); diff --git a/management-gui/mainwindow.cpp b/management-gui/mainwindow.cpp index 516827c..72dfb30 100644 --- a/management-gui/mainwindow.cpp +++ b/management-gui/mainwindow.cpp @@ -230,6 +230,12 @@ void MainWindow::on_actionClearAnimeTitleData_triggered() MyList::instance()->database()->truncateTitleData(); } +void MainWindow::on_actionClearFailedRequests_triggered() +{ + LocalMyList::instance()->database()->clearFailedPendingRequests(); + LocalMyList::instance()->database()->clearFailedPendingMyListUpdateRequests(); +} + void MainWindow::on_actionRemoveKnownUnknownFiles_triggered() { LocalMyList::instance()->executeTask(new UnknownFileLookupTask()); diff --git a/management-gui/mainwindow.h b/management-gui/mainwindow.h index 712f906..42c94b0 100644 --- a/management-gui/mainwindow.h +++ b/management-gui/mainwindow.h @@ -58,6 +58,7 @@ private slots: void on_actionClearDatabase_triggered(); void on_actionClearMyListData_triggered(); void on_actionClearAnimeTitleData_triggered(); + void on_actionClearFailedRequests_triggered(); void on_actionRemoveKnownUnknownFiles_triggered(); diff --git a/management-gui/mainwindow.ui b/management-gui/mainwindow.ui index 68a1963..53547d6 100644 --- a/management-gui/mainwindow.ui +++ b/management-gui/mainwindow.ui @@ -96,6 +96,7 @@ + @@ -239,6 +240,11 @@ Add Related Episode Info + + + Clear Failed Requests + +