Tôi có một diễn viên cấp cao nhất (dưới người giám hộ), được gọi là Groups
khi khởi động cần tải danh sách nhóm từ cơ sở dữ liệu và tạo một nhóm diễn viên trẻ dựa trên các nhóm đó trong cơ sở dữ liệu.Cách thực hành tốt nhất để khởi tạo diễn viên từ cơ sở dữ liệu
Tôi đã đặt mã tải cơ sở dữ liệu bên trong chức năng preStart
vì tôi không muốn bất kỳ thư nào được xử lý trước khi các nhóm được tải.
Hiện tại, diễn viên Groups
của tôi trông giống như thế này;
var groups: Map[String, ActorRef] = Map()
override def preStart() = {
groups = getGroupsFromDB() map createGroup
}
def createGroup(pair: (String, Long)) = {
val (name, id) = pair
val group = context.actorOf(Props(new Group(id, name)), name = name)
name -> group
}
Tuy nhiên tôi không tin đây là cách tốt nhất để xử lý việc này, vì điều gì sẽ xảy ra nếu máy chủ cơ sở dữ liệu không khả dụng? Vậy cách tốt nhất để xử lý việc khởi tạo dữ liệu từ cơ sở dữ liệu là gì?
Cảm ơn, tôi đã lấy ý tưởng từ trang đó và sử dụng chúng trong thiết kế của tôi. tức là có các diễn viên lưu trữ/DB riêng biệt. Tôi muốn có một mẫu mã về cách quản lý các kết nối cơ sở dữ liệu. – Phenix