Migrez unele noduri dintr-un API.
API-ul acceptă doar 60 de solicitări pe minut.
Deci înseamnă că dacă 60 de articole sunt importate într-un minut, toate celelalte articole nu vor fi importate, deoarece API-ul va returna codul de eroare 429 în acest caz.
Deci, în următorul cron, aceleași 60 de articole vor fi procesate și vor fi actualizate. Toate celelalte articole nu vor fi niciodată importate.
funcția mymodule_cron() {
/** @var \Drupal\migrate\Plugin\MigrationInterface $migration */
$migration = $this->migrationPluginManager->createInstance($migration_id);
$migration->getIdMap()->prepareUpdate();
$executable = new MigrateExecutable($migration, new MigrateMessage());
$executable->import();
}
Deci, ce ar trebui să fac în acest caz pentru a importa toate articolele?
Există vreo funcționalitate de coadă cu cron care execută migrarea? Ca să pot spune să execut 60 de articole pe coadă și să execut o coadă pe minut, așa ceva?
Actualizați:
$request = $this->httpClient->get($url, [
'headers' => [
„Content-Type” => „aplicație/json”,
„Accept” => „aplicație/json”,
'Authorization' => 'La purtător' . $this->token,
],
]);
$news_item = json_decode($request->getBody(), TRUE);
$sursa = $migration->getSourceConfiguration();
$source['data_rows'] = $news_item;
$migration->set('sursa', $sursa);
Sunt peste 300 de articole.