[英]python multithreading issue in cronjob
我有一個使用ThreadPool進行多線程處理的 python 程序。 該程序是 shell 腳本中的一個步驟。 當我在命令行上手動執行 shell 腳本時,整個流程按預期工作。 但是,當我將 shell 腳本作為 cronjob 執行時,在 python 多線程步驟完全完成之前,流程似乎進入了下一步。
在 python 程序中,我確實調用了 AsyncResult.get(timeout) 以等待所有結果返回,然后再繼續。
嘗試在crontab
中設置"TERM=xterm"
(或您擁有的任何環境變量,通過終端上的命令 'env' 找出)。
通過batch(1)
運行你的程序(參見命令man batch
的 output )。 如果可以,但 cron 版本不行,那么幾乎可以肯定是您的環境變量設置有問題。 要驗證這一點,請從交互式 shell 運行printenv
以檢查那里的環境。 然后在 crontab 中執行相同的操作(您只需為其臨時設置一個額外的 cron 條目)。 在調用 Python 之前,嘗試在 shell 腳本中設置變量。
另一方面,如果它也不能通過batch(1)
工作,則可能與您的代碼已打開的文件有關。 嘗試運行 shell 腳本,輸入從 /dev/null 重定向, output 轉到文件:
$ /usr/local/bin/myscript </dev/null >|/tmp/outfile.txt 2>&1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.