微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python / django fork之后的SSL错误

我有一个python django应用程序,其中一部分是解析一个文件.这需要永远,所以我放入一个分叉来处理处理,允许用户继续浏览网站.在fork代码中,有一堆调用我们的postgres数据库,托管在亚马逊上.

我收到以下错误

SSL error: decryption Failed or bad record mac

这是代码

pid = os.fork()
if pid == 0:
    lengthy_code_here(long)
    database_queries(my_database)
    os._exit(0)

我的数据库调用都没有工作,虽然它们在插入fork之前工作得很好.看了一下后,似乎它可能是一个陈旧的数据库连接,但我不知道如何解决它.有没有人有任何想法?

解决方法:

在打开套接字(例如数据库连接)时进行分叉通常是不安全的,因为两个进程最终都会尝试同时使用同一个套接字.

在分叉之后,您至少需要关闭并重新打开数据库连接.

但理想情况下,这可能更适合像Celery这样的任务排队系统.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐