Heim > Fragen und Antworten > Hauptteil
Ich bin ein Neuling im Bereich Betrieb und Wartung. Nachdem ich kürzlich eine einfache Verarbeitung von Unternehmensprotokollen durchgeführt habe, habe ich eine bestimmte Menge zu einer Liste hinzugefügt und die Daten dann über die ES-Schnittstelle stapelweise zu einer anderen ElasticSearch hinzugefügt und sie dann in einigen angezeigt Wege. Hier liegt ein Problem vor, wenn Daten eingefügt werden. Beispielsweise stürzt der einzufügende es-Host usw. ab, es liegt jedoch kein Problem mit der Datenquelle vor. Dies sollte die verarbeiteten Daten in den Cache verschieben und dann das Programm stoppen. (Die Datenquelle ist Kafka. Auch wenn das Programm gestoppt wird, kann es nach dem Neustart weiterhin verwendet werden.)
Daher möchte ich bei relativ einfachen Python-Programmen oder -Skripten fragen, wie wir diese Ausnahmen speichern sollen, wenn sie auftreten über die zunächst gespeicherten Daten?
阿神2017-05-19 10:09:54
可以在es异常时, py脚本捕获到异常后, 使用cPickle
或者pickle
将处理好的数据序列化后保存到一个文件上(你可以理解成写入一个文件, 不同在于cPickle
和pickle
能够将字典或者列表这样的对象直接写入文件), 然后等你es恢复了, 重新启动该py脚本, 那么该脚本优先去检测是否存在这个临时文件, 如果有, 并非空, 则把里面的数据取出, 写入es