cronjob中的python多线程问题

标签 python multithreading cron threadpool

我有一个使用 ThreadPool 的 python 程序用于多线程。该程序是 shell 脚本中的一个步骤。当我在命令行上手动执行 shell 脚本时,整个流程按预期工作。但是,当我将 shell 脚本作为 cronjob 执行时,似乎在 python 多线程步骤完全完成之前流程进入了下一步。

在 python 程序中,我会调用 AsyncResult.get(timeout) 以等待所有结果返回,然后再继续。

最佳答案

同样通过 batch(1) 运行您的程序(参见命令 man batch 的输出)。如果这工作正常,但 cron 版本没有,那么几乎可以肯定是您的环境变量设置有问题。要验证这一点,请从交互式 shell 运行 printenv 以检查那里的环境。然后在 crontab 中做同样的事情(你只需要临时为它设置一个额外的 cron 条目)。在调用 Python 之前尝试在 shell 脚本中设置变量。

另一方面,如果它也不能通过 batch(1) 工作,则可能与您的代码打开的文件有关。尝试使用从/dev/null 重定向的输入和输出到一个文件来运行你的 shell 脚本:

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

关于cronjob中的python多线程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6766730/

相关文章:

git - 如何正确地将 'git push' 命令添加到 crontab - Ubuntu

python - 在 Windows 上使用 TOR 和 python - 找不到安装程序

python - 使用 pyenv,我如何 pip 安装全局 CLI 并使它们即使在 virtualenv 中也可用?

每个实例或对象实例的java线程

在终端中工作但不在 cronjob 中工作的 Python 代码

php - 为 wordpress 添加一个 cron-function

python - Pandas - 规范化 Json 列表

python - Django 信号如何工作?

C++ 如果一个线程写入后切换一个 bool 值,那么在另一个线程的循环中读取该 bool 值是否安全?

c# - 连接池-一个进程-多个线程