aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2017-03-29 21:42:40 +0200
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2017-03-29 21:42:40 +0200
commit0d4c26c673d548a1367a0f96f49546ca27619d90 (patch)
tree1f7ca161eb586220199906c66da6360062c3fca4 /app
parent6c604bc1dd75cc67392ff37186855faea3c29d48 (diff)
Add manual commit & refresh cache to deferred insertion
Diffstat (limited to 'app')
-rwxr-xr-xapp/Controllers/feedController.php15
1 files changed, 13 insertions, 2 deletions
diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php
index 07a763613..d1f0d3535 100755
--- a/app/Controllers/feedController.php
+++ b/app/Controllers/feedController.php
@@ -460,6 +460,7 @@ class FreshRSS_feed_Controller extends Minz_ActionController {
* - id (default: false): Feed ID
* - url (default: false): Feed URL
* - force (default: false)
+ * - noCommit (default: 0): Set to 1 to prevent committing the new articles to the main database
* If id and url are not specified, all the feeds are actualized. But if force is
* false, process stops at 10 feeds to avoid time execution problem.
*/
@@ -468,9 +469,19 @@ class FreshRSS_feed_Controller extends Minz_ActionController {
$id = Minz_Request::param('id');
$url = Minz_Request::param('url');
$force = Minz_Request::param('force');
- $noCommit = Minz_Request::fetchPOST('isLastFeed', 1) != 1;
+ $noCommit = Minz_Request::fetchPOST('noCommit', 0) == 1;
- list($updated_feeds, $feed) = self::actualizeFeed($id, $url, $force, null, false, $noCommit);
+ if ($id == -1 && !$noCommit) { //Special request only to commit & refresh DB cache
+ $updated_feeds = 0;
+ $entryDAO = FreshRSS_Factory::createEntryDao();
+ $feedDAO = FreshRSS_Factory::createFeedDao();
+ $entryDAO->beginTransaction();
+ $entryDAO->commitNewEntries();
+ $feedDAO->updateCachedValues();
+ $entryDAO->commit();
+ } else {
+ list($updated_feeds, $feed) = self::actualizeFeed($id, $url, $force, null, false, $noCommit);
+ }
if (Minz_Request::param('ajax')) {
// Most of the time, ajax request is for only one feed. But since