Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

Frage zur Batch finished-Funktion (feeds_batch)

Eingetragen von montviso (2189)
am 26.02.2013 - 13:14 Uhr in
  • Modul-Entwicklung
  • Drupal 7.x

Ich habe ein kleines Modul geschrieben mit einem Cron-Hook für einen Feeds-Import.
Der Cron wird über Elysia Cron konfiguriert und gestartet.

Hier ist eine Zusammenfassung des Codes:

function feedsimport_cron() {

foreach (irgendwas)
{
$feed = "mein-importer-name-in-dieser-schleife";
$filename = "mein-importer-file-name-in-dieser-schleife";
$title= "mein-importer-titel-in-dieser-schleife";
$feedSource = feeds_source($feed);

$config = $feedSource->getConfig();
$config['FeedsFileFetcher']['source'] = $filename;
$feedSource->setConfig($config);
$feedSource->save();
$batch = array(
'title' => t('Importing feeds '.$title),
'init_message' => t($title.' Batch is starting.'),
'operations' => array(
  array('feeds_batch', array('import', $feed, 0)),
),
'progress_message' => t('Processed @current out of @total.'),
'error_message' => t('Batch has encountered an error.'),
'finished' => 'batch_example_finished',
);
batch_set($batch);
    
}
batch_process('my-redirect-url');
}

function batch_example_finished($success, $results, $operations) {
  if ($success) {
    // Here we do something meaningful with the results.
    //Je nach Feed-Operation soll hier was bestimmtes getan werden, aber wo bekomme ich die Info her?
    $message = format_plural(count($results), 'One item processed.', count($results).' item processed.');
    drupal_set_message($message);
  }
  else {
    // An error occurred.
    // $operations contains the operations that remained unprocessed.
    $error_operation = reset($operations);
    $message = t('An error occurred while processing %error_operation with arguments: @arguments', array('%error_operation' => $error_operation[0], '@arguments' => print_r($error_operation[1], TRUE)));
    drupal_set_message($message, 'error');
  }
}

Der Batch läuft tadellos durch und die Variable $success in der Funktion batch_example_finished wird danach auf True gesetzt.
Wenn die Schleife oben drei Batch-Operationen generiert, dann bekomme ich unten drei Messages aus dieser Funktion.
Die Message lautet jeweils 0 item processed, obwohl beim Import-Vorgang z.B. 20 Inserts und 50 Updates korrekt durchgeführt wurden.

Mein Problem: Die Variablen $results und $operations sind leere Arrays.
Ich möchte aber abhängig davon, welcher Batch gerade erfolgreich gelaufen ist, noch eine Datenbankmanipulation in dieser Schleife vornehmen.

In allen API-Beispielen wird davon ausgegangen, daß in der Variablen $results die Anzahl der Items gespeichert wird.
Und ich hatte gehofft, daß ich aus der Variablen $operations den Namen des so eben erfolgreich abgearbeiteten Feeds-Importers rauslesen kann.

D.h. ich habe zwei Fragen:
1. Erkennt jemand, warum die Arrays leer sind?
2. Gibt es eine Alternative, wie ich durch einen zusätzlichen Parameter den Namen des Feeds in die finished-Funktion transportieren kann?

‹ Modulentwicklung Fragen zum Vorgehen Frage zur Batch finished-Funktion (feeds_batch) ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
Weiter

Neue Kommentare

  • Was für einen Server benutzt
    vor 5 Tagen 1 Stunde
  • Wenn die Subdomain auf
    vor 6 Tagen 23 Stunden
  • ordnerstruktur
    vor 1 Woche 10 Stunden
  • Die Subdomain muß auf den
    vor 1 Woche 2 Tagen
  • Verwende doch das Tag dafür,
    vor 4 Wochen 4 Tagen
  • Guckst du hier: step by step
    vor 4 Wochen 4 Tagen
  • Guckst du hier: step by step
    vor 4 Wochen 4 Tagen
  • Ich habe ja keine Angst vor
    vor 5 Wochen 6 Tagen
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 6 Wochen 1 Tag
  • Vielen Dank erst einmal, aber
    vor 6 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250289
Registrierte User: 20514

Neue User:

  • Wolf Dab
  • Scottteday
  • MichaelPeeno

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 1 Benutzer und 22 Gäste online.

Benutzer online

  • wla

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association