我有一个程序,每天安排一次任务。 每天,它都会从外部API获取数据,并将结果存储到我的数据库中。我选择使用Slick来与akka演员进行此操作,以连接到我的数据库。
应用程序的“数据库插入”端的工作方式如下:
为了调用数据库,我有一个数据库Slick对象的全局引用,这些DatabaseInserters都使用它。我想知道这是否是正确的方法。可以因为某种原因而死掉这个全球参考吗?
还是最好为每个DatabaseInverter创建一个新的数据库对象,该对象在db.close()
方法中使用postStop
?
最后一个选择是:我在日常工作开始时创建一个db对象,并在工作完成后关闭它(通常在15分钟后)。
我光滑的依赖项是
"com.typesafe.slick" %% "slick" % "3.2.3",
"com.typesafe.slick" %% "slick-hikaricp" % "3.2.3",
答案 0 :(得分:0)
如果在配置Database
时使用了thread pool & connection pool的滑动功能,则应该能够共享“全局引用”,而不会因长时间运行的应用程序而产生负面影响。