Рейтинг:0

Как выполнить миграцию в очереди через запуск cron?

флаг kr

Я переношу некоторые узлы из 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 штук.

флаг in
Насколько большой ответ возвращает этот API? Сколько это предметов? Это JSON? CSV? Насколько велик размер ответа (МБ)?
флаг kr
Ответ в формате JSON.Вместо использования URL-адреса я отправил запрос на URL-адрес, а затем использовал плагин `embedded_data`, чтобы избежать нескольких запросов для одного узла, потому что я также переношу изображения и таксономию из этого ответа. Пожалуйста, проверьте раздел обновления вопроса.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.