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 - 12: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

  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
Weiter

Neue Kommentare

  • Inzwischen sind wir bei
    vor 1 Tag 2 Stunden
  • Migrieren von D7 auf D8/ D10/ D11
    vor 1 Tag 18 Stunden
  • melde mich mal wieder, da ich
    vor 7 Wochen 5 Tagen
  • Hey danke
    vor 7 Wochen 6 Tagen
  • Update: jetzt gibt's ein
    vor 8 Wochen 11 Stunden
  • Hallo, im Prinzip habe ich
    vor 8 Wochen 4 Tagen
  • Da scheint die Terminologie
    vor 8 Wochen 4 Tagen
  • Kannst doch auch alles direkt
    vor 9 Wochen 2 Tagen
  • In der entsprechenden View
    vor 9 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 9 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250235
Registrierte User: 20463

Neue User:

  • marouane.blel
  • capilclinic
  • Quabzibboter

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 24 Gäste online.

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