0

我们一直在使用 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

作业完成但没有创建数据集,如果我删除作业并重新收集它会继续运行但永远不会结束,并且其他收集作业也不会更新。

我怎样才能解决这个问题?

4

1 回答 1

1

@Urkonn,这里发生了不同的事情:

  • Harvester 卡住:这可能是由 Harvester 上的错误实现引起的,由您正在收割的文件中的特定格式或字段触发。如果不了解更多信息就很难调试,您能否将导致收割机挂起的文件之一的链接发给我,或者发生这种情况时日志会说什么?

  • 在不删除数据集的情况下清除源:我完全理解删除所有数据集似乎有点矫枉过正,但如果我们从源中清除作业、对象等,那么现有数据集将失去与源的链接,例如这意味着它们未在源页面上列出。此外,新作业将无法知道数据集已经为此源收集,因此即使数据集已经存在,它也会创建一个副本。也许有一种方法可以防止这种情况,但我会说重新创建数据集更安全。

  • KeyError: 'content-length':这是升级到 requests 2.3 造成的。我已经向 ckanext-dcat 推送了一个修复程序以防止这种情况 [1],因此请拉取最新版本以获取补丁并重新启动所有收获过程。

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

于 2014-10-06T10:22:09.910 回答