Жатки, использующие расширение DCAT, застряли

Мы использовали ckanext-dcat для сбора данных из удаленных источников json, иногда некоторые задания сбора данных не завершались, и их приходилось удалять вместе со всеми наборами данных из этого источника, что не очень удобно, но затем все возвращается к нормальной жизни, Я не знаю, есть ли способ удалить только одну работу.

Но теперь я получаю это в журнале сбора информации:

    Traceback (most recent call last):
  File "/usr/lib/ckan/default/bin/paster", line 9, in <module>
    load_entry_point('PasteScript==1.7.5', 'console_scripts', 'paster')()
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/paste/script/command.py", line 104, in run
    invoke(command, command_name, options, args[1:])
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/paste/script/command.py", line 143, in invoke
    exit_code = runner.run(args)
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/paste/script/command.py", line 238, in run
    result = self.command()
  File "/usr/lib/ckan/default/src/ckanext-harvest/ckanext/harvest/commands/harvester.py", line 129, in command
    gather_callback(consumer, method, header, body)
  File "/usr/lib/ckan/default/src/ckanext-harvest/ckanext/harvest/queue.py", line 219, in gather_callback
    harvest_object_ids = harvester.gather_stage(job)
  File "/usr/lib/ckan/default/src/ckanext-dcat/ckanext/dcat/harvesters.py", line 186, in gather_stage
    content = self._get_content(url, harvest_job, page)
  File "/usr/lib/ckan/default/src/ckanext-dcat/ckanext/dcat/harvesters.py", line 66, in _get_content
    cl = r.headers['content-length']
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/requests/structures.py", line 54, in __getitem__
    return self._store[key.lower()][1]
KeyError: 'content-length

Задание завершается, но наборы данных не создаются, если я удаляю задание и повторно собираю его, оно продолжает работать, но никогда не заканчивается, и другие задания сбора урожая также не обновляются.

Как я могу это исправить?

1 ответ

Решение

@Urkonn, здесь происходят разные вещи:

  • Застревание харвестера: это может быть вызвано ошибочной реализацией харвестера, вызванной определенным форматом или полем в файлах, которые вы собираете. Трудно отладить, не зная больше, вы можете отправить мне ссылку на один из файлов, который вызывает зависание комбайна, или что в журналах говорится, когда это происходит?

  • Очистка источника без удаления наборов данных: я полностью понимаю, что удаление всех наборов данных кажется излишним, но если мы удалим задания, объекты и т. Д. Из источника, то существующие наборы данных потеряют связь с источником, что, например, будет означать, что они не перечислены на исходной странице. Также у новых заданий не будет возможности узнать, что набор данных уже собран для этого источника, поэтому он создаст дубликат, даже если набор данных уже существует. Может быть, есть способ предотвратить это, но я бы сказал, что воссоздание наборов данных безопаснее.

  • KeyError: 'content-length': это вызвано обновлением до запросов 2.3. Я добавил исправление в ckanext-dcat, чтобы предотвратить это [1], поэтому, пожалуйста, загрузите последнюю версию, чтобы получить исправление и перезапустить все процессы сбора.

[1] https://github.com/ckan/ckanext-dcat/commit/ed186623d83cf3baf9dd29bdb13be7f1431b8ab8

Другие вопросы по тегам