我使用包PostgreSQL
与RPostgreSQL
建立了数据库连接。目前我做以下事情:
我有兴趣并行化这个过程。显而易见的是在同名包中使用foreach
功能。但是,我们需要使用连接池:在这种情况下,我感兴趣的是,如果有人知道我可以用来共享我的数据库连接的并行后端。这是一个特定的未解决的例子:
在上面的例子中,registerDoMC
并行后端没有连接池,可以解决每个dopar
工作者中的连接问题。查看registerDoSnow
包中的snow
并行后端也不具备此功能。
另一种方法是使用mclapply
代替dopar
。在这种情况下,是否有人知道是否或如何与每个mclapply
工作者共享数据库连接?
答案 0 :(得分:3)
您不能在任何通用R并行编程包中的不同工作者之间共享数据库连接,因为工作者是独立的进程。但是,您可以为每个工作者创建一个连接,并让工作人员为每个执行的任务使用该连接。我在回答问题that you cited.
时讨论了如何做到这一点