Cronie/Vixie 风格的 crontab 允许在计划命令上方写入环境条目。Python 任务可以直接获得代理路由:

http_proxy=http://proxy.example.net:8080
https_proxy=http://proxy.example.net:8080

15 * * * * cd /srv/myapp && /srv/myapp/.venv/bin/python jobs/fetch.py

该示例在每小时的第 15 分钟运行。路径指向已有的项目与 Python 环境,脚本使用的 HTTP 客户端必须读取这些代理变量。HTTP 代理列表可以为无需代理账户的获准公开抓取任务提供一个端点。

这些环境条目对该 crontab 中后续的任务同样生效。如果只应让一个任务使用该路由,就把变量赋值写在该任务的命令上。

使用项目实际的解释器和工作目录。正确的代理值并不能让另一套 Python 安装导入预期的依赖,也不能让它按项目相对路径找到配置文件。当计划命令已经选中正确的环境时,广泛添加 PYTHONPATH 和库路径是不必要的。

相关文章