/ / Python Multithreading Problem in Cronjob - Python, Multithreading, Cron, Threadpool

Python Multithreading Problem in Cronjob - Python, Multithreading, Cron, Threadpool

Ich habe ein Python-Programm, das die ThreadPool für Multithreading. Das Programm ist ein Schritt in einem Shell-Skript. Wenn ich das Shell-Skript manuell in der Befehlszeile ausführen, funktioniert der gesamte Ablauf wie erwartet. Wenn ich jedoch das Shell-Skript als Cronjob ausführen, scheint es, dass der Ablauf zu den nächsten Schritten führt, bevor die Multithreading-Schritte von Python vollständig abgeschlossen sind.

Innerhalb des Python-Programms rufe ich AsyncResult.get (Timeout) auf, um zu warten, bis alle Ergebnisse zurückgegeben werden, bevor sie fortfahren.

Antworten:

0 für die Antwort № 1

Führen Sie Ihr Programm über batch(1) (Siehe die Ausgabe des Befehls man batch) auch. Wenn dies funktioniert, die cron-Version jedoch nicht, ist dies höchstwahrscheinlich ein Problem bei der Einrichtung Ihrer Umgebungsvariablen. Um dies zu überprüfen, führen Sie es aus printenv von Ihrer interaktiven Shell, um Ihre zu überprüfenUmwelt dort. Dann machen Sie dasselbe in der Crontab (Sie müssen nur einen zusätzlichen Cron-Eintrag dafür vorübergehend einrichten). Setzen Sie die Variablen in Ihrem Shell-Skript, bevor Sie Python aufrufen.

Andererseits funktioniert es nicht über batch(1) Es könnte auch etwas mit den Dateien zu tun haben, die Ihr Code geöffnet hat. Versuchen Sie, Ihr Shellskript mit Eingabe auszuführen, die von / dev / null umgeleitet wurde, und die Ausgabe in eine Datei zu gehen:

$ /usr/local/bin/myscript </dev/null >|/tmp/outfile.txt 2>&1