Jetzt erstellen wir eine Reihe automatischer Tools für Programme auf dem Server mit verschiedenen Vorgängen wie Starten, Stoppen und Anpassen. Der Bereitstellungsinhalt auf verschiedenen Knoten ist jedoch nicht nur derselbe, es wird auch davon ausgegangen, dass Python-Funktionen mit unterschiedlichen Funktionen vorbereitet wurden. Lesen Sie dann externe Informationen, z. B. JSON-Daten, um die Ausführungsreihenfolge und Parameter dieser Funktionen zu bestimmen. Können Sie mir bitte sagen, wie dies erreicht wird?
Zum Beispiel gibt es drei Geschäftsfunktionen: Funktion Funktion 1 (Parameter 1, Parameter 2) Funktion Funktion 2 (Parameter 1, Parameter 2, Parameter 3) Funktion Funktion 3 (Parameter 1).
Dann lese ich einen {{{'funcname':'Function function 2'},{'parameter':[para1,para2,para3]}},{{'funcname':'Function function 1'},{' Parameter ':[para1,para2]}}}
Dann folgt das Programm der Reihenfolge von Funktion 2 und Funktion 1 und liest die Parameterparameter, um diese Reihe von Aktionen auszuführen.
(Tatsächlich benötigt es als Automatisierungstool auf jeden Fall zeitnahe Feedback-Informationen. Nach der Ausführung jeder Funktion werden die Rückgabeinformationen gelesen. Wenn ein Fehler auftritt, wird das Programm sofort unterbrochen und die Informationen werden gemeldet oder protokolliert Mit anderen Worten, jedes Mal, wenn eine Funktion ausgeführt wird, führt die Funktionsfunktion auch ein einfaches Programm aus, um das Rückgabeergebnis zu beurteilen)
Hier ist zu beachten, dass die Anzahl der auszuführenden Funktionen ungewiss ist und auch die Reihenfolge ungewiss ist. Der dümmste Weg, der mir sofort einfiel, war, die externe JSON-Datei zu durchlaufen und dann den Funktionsnamen auszulesen, um zu bestimmen, welche Funktion ausgeführt werden soll. Ich habe jedoch das Gefühl, dass es schwieriger ist, diese Methode später zu erweitern und aufrechtzuerhalten. Ich hoffe, wir können darüber diskutieren
使用eval可以将字符串当作代码来执行,并返回结果:
用一个循环,遍历Json文件的所有items
将函数名和参数,转换为字符串。
eval执行字符串
处理返回值