簡體   English   中英

cronjob 中的 python 多線程問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM