Ich versuche, eine Liste aller aktiven Threads einschließlich des aktuellen Stapels von jedem zu löschen. Ich kann eine Liste aller Threads mit threading.enumerate() erhalten, aber ich kann keinen Weg finden, von dort zum Stack zu kommen.Dump stacktraces aller aktiven Threads
Hintergrund: Eine Zope/Plone-App flippt von Zeit zu Zeit aus, verbraucht 100% der CPU und muss neu gestartet werden. Ich habe das Gefühl, dass es eine Schleife ist, die nicht ordnungsgemäß beendet wird, aber ich kann sie nicht in der Testumgebung zur Verifikation reproduzieren. Es ist mir gelungen, einen Signal-Handler zu registrieren, der von außen ausgelöst werden kann, so dass ich Code auslösen kann, sobald die Situation wieder auftritt. Wenn ich den StackTrace für alle aktiven Threads ausgeben könnte, würde ich einen Hinweis bekommen, was schief läuft. Das Loch, was läuft auf Python 2.4 ...
Alle Ideen, wie Situationen wie diese zurückzuverfolgen sind willkommen :)
Cheers, Chriss
Vielen Dank, das ist genau das, was ich brauche! – Chriss
Heutzutage in Plone "keine speziellen Pakete sind notwendig" http: // stackoverflow.com/a/36633215/3046069 – Danimal
@Danimal: danke, hinzugefügt, um den Beitrag. 2.12.5 wurde ein Jahr nachdem ich diese Antwort geschrieben hatte veröffentlicht. –