Я переношу некоторые узлы из API.
API принимает только 60 запросов в минуту.
Таким образом, это означает, что если за минуту будет импортировано 60 элементов, все остальные элементы не будут импортированы, поскольку в этом случае API вернет код ошибки 429.
Таким образом, на следующем cron будут обработаны и обновлены те же 60 элементов. Все остальные элементы никогда не будут импортированы.
функция mymodule_cron() {
/** @var \Drupal\migrate\Plugin\MigrationInterface $migration */
$migration = $this->migrationPluginManager->createInstance($migration_id);
$migration->getIdMap()->prepareUpdate();
$executable = новый MigrateExecutable($migration, new MigrateMessage());
$исполняемый->импорт();
}
Итак, что мне делать в этом случае, чтобы импортировать все элементы?
Есть ли какие-либо функции очереди с cron, который выполняет миграцию? Чтобы я мог сказать выполнять 60 элементов в очереди и выполнять одну очередь в минуту, что-то в этом роде?
Обновлять:
$request = $this->httpClient->get($url, [
'заголовки' => [
'Тип контента' => 'приложение/json',
'Принять' => 'приложение/json',
'Авторизация' => 'Предъявитель' . $это->токен,
],
]);
$news_item = json_decode($request->getBody(), TRUE);
$source = $migration->getSourceConfiguration();
$source['data_rows'] = $news_item;
$migration->set('источник', $источник);
Их более 300 штук.