diff --git a/feeds.module b/feeds.module index f581d3f..c0d1440 100644 --- a/feeds.module +++ b/feeds.module @@ -91,7 +91,7 @@ function feeds_cron_queue_info() { $queues = array(); $queues['feeds_source_import'] = array( 'worker callback' => 'feeds_source_import', - 'time' => 15, + 'time' => 60, ); $queues['feeds_source_clear'] = array( 'worker callback' => 'feeds_source_clear', @@ -122,7 +122,16 @@ function feeds_source_import($job) { catch (Exception $e) { $source->log('import', $e->getMessage(), array(), WATCHDOG_ERROR); } - $source->scheduleImport(); + if ($source->progressImporting() == FEEDS_BATCH_COMPLETE) { + // Feed import finished, so we schedule the next execution in the future. + $source->scheduleImport(); + } + else { + // Feed is not fully imported yet, so we put this job back in the queue + // immdeiately for further processing. + $queue = DrupalQueue::get('feeds_source_import'); + $queue->createItem($job); + } } /**