各ワーカーがデータベース クエリを実行する必要がある並列タスクをセットアップしようとしています。この質問に見られるように、接続を使用して各ワーカーをセットアップしようとしていますが、試行するたびに、登録したワーカーの数が返さ<Expired PostgreSQLConnection:(2781,0)>
れます。
これが私のコードです:
cl <- makeCluster(detectCores())
registerDoParallel(cl)
clusterEvalQ(cl, {
library(RPostgreSQL)
drv<-dbDriver("PostgreSQL")
con<-dbConnect(drv, user="user", password="password", dbname="ISO",host="localhost")
})
foreach
エラーにもかかわらず実行しようとすると、失敗しますtask 1 failed - "expired PostgreSQLConnection"
postgres サーバーのステータスに入ると、作成されたすべてのアクティブなセッションが表示されます。
メインの R インスタンスから postgres を操作するのに問題はありません。
私が走れば
clusterEvalQ(cl, {
library(RPostgreSQL)
drv<-dbDriver("PostgreSQL")
con<-dbConnect(drv, user="user", password="password", dbname="ISO",host="localhost")
dbGetQuery(con, "select inet_client_port()")
})
次に、すべてのクライアント ポートを返します。期限切れの通知は表示されませんが、 foreach コマンドを実行しようとすると、同じエラーで失敗します。
編集:
Ubuntu と 2 台の Windows コンピューターでこれを試しましたが、すべて同じエラーが発生します。
別の編集:
現在、3台のWindowsコンピューター