【发布时间】:2021-05-23 00:13:52
【问题描述】:
我有一个很长的脚本,它提取 pdf,进行大量处理,然后返回结果。通过端口 8000 运行时,它可以完美运行
python manage.py runserver 0.0.0.0:8000
或
gunicorn --bind 0.0.0.0:8000 myproject.wsgi
但是,当我在“生产”中通过端口 80 运行它时,脚本会在某个点停止运行,没有错误,而且逻辑上似乎没有漏洞。真正引起混淆的是,它根据处理文档的长度/复杂性在不同的地方停止。短/简单的完整没有问题,但较长的会停在中间。
我尝试添加一个非常详细的日志文件来调试问题。如果我处理一个文档,它会停止在同一个循环中但在循环内的不同位置运行(看似随机),这表明这不是一个逻辑缺陷(注意我正在编写和刷新)。此外,如果我使用更长/更复杂的文档,它会在流程的早期神秘地停止。
我正在 DigitalOcean 上通过 gunicorn/nginx 使用 Django 部署它
是否存在某种内置保护措施,可在一定数量的 CPU 周期或时间后停止进程,以防止上述任何一种情况出现无限循环?这是我唯一能想到的,因为否则我没有想法。
非常感谢任何帮助!
【问题讨论】:
标签: python django nginx gunicorn digital-ocean