POSTGRESQL 和 Django 應用程式:無法從客戶端接收資料:連線已被對等方重置

POSTGRESQL 和 Django 應用程式:無法從客戶端接收資料:連線已被對等方重置

我正在運行一個帶有 postgresql、nginx 和 Gunicorn 的 django 應用程式。我有一個腳本,其中從資料庫中的一個表中提取數據,進行修改,然後需要替換該表中的現有數據。在同一腳本中,也更新了一些表格。

運行腳本時,總是會導致502 Bad Gateway伺服器因腳本中的某些內容而逾時。作為一個相當新的話題,我正在努力弄清楚以下錯誤是怎麼回事。

我只有來自 postgres 的以下日誌可以使用:

2020-08-22 14:57:59 UTC::@:[8228]:LOG: checkpoint starting: time
2020-08-22 14:57:59 UTC::@:[8228]:LOG: checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.101 s, sync=0.005 s, total=0.132 s; sync files=1, longest=0.005 s, average=0.005 s; distance=65536 kB, estimate=70182 kB
2020-08-22 14:58:50 UTC:address-ip(45726):pierre@dbexostock:[25618]:LOG: could not receive data from client: Connection reset by peer
2020-08-22 14:58:50 UTC:address-ip(45724):pierre@dbexostock:[25617]:LOG: could not receive data from client: Connection reset by peer

我認為問題出在腳本中與資料庫的連結內部:

#connect to db
engine = create_engine('postgresql+psycopg2://user:[email protected]',
                               connect_args={'options': '-csearch_path={}'.format(dbschema)})

#access the data in the historical_data table 
conn = engine.connect()
metadata = sqlalchemy.MetaData()
histoo = sqlalchemy.Table('uploadfiles_historical_data', metadata, autoload=True, autoload_with=engine)
query = sqlalchemy.select([histoo])
resultproxy = conn.execute(query)
        
        
result_set = resultproxy.fetchall()

#update the historical table 
histo = histo2.head(0).to_sql('uploadfiles_histoo', engine, if_exists='replace')
cur = conn.cursor()
output = io.StringIO()
histo2.to_csv(output, sep='\t', header=False, encoding='utf8')
output.seek(0)
cur.copy_from(output,'uploadfiles_histoo')
conn.commit()

#update other tables (example)
itemmdb = df559.to_sql('dashboard_item', engine, if_exists='replace')

我真的很困惑,並且在這個問題上思考了一段時間,但似乎沒有任何效果。希望有人能看到我搞砸的地方。

相關內容