コード例 #1
0
ファイル: service_manager.go プロジェクト: vburenin/firempq
// DropService drops service.
func (s *ServiceManager) DropService(svcName string) apis.IResponse {
	s.rwLock.Lock()
	defer s.rwLock.Unlock()
	svc, ok := s.allSvcs[svcName]
	if !ok {
		return mpqerr.ERR_NO_SVC
	}
	svc.Close()
	delete(s.allSvcs, svcName)
	svcID := svc.Info().ID
	queue_info.DeleteServiceData(svcID)
	log.Debug("Service '%s' has been removed: (id:%s)", svcName, svcID)
	return resp.OK_RESPONSE
}
コード例 #2
0
ファイル: service_manager.go プロジェクト: vburenin/firempq
func (s *ServiceManager) loadService(desc *queue_info.ServiceDescription) (apis.ISvc, bool) {
	if desc.Disabled {
		log.Error("Service is disabled. Skipping: %s", desc.Name)
		return nil, false
	}
	if desc.ToDelete {
		log.Warning("Service should be deleted: %s", desc.Name)
		queue_info.DeleteServiceData(desc.Name)
		return nil, false
	}
	log.Debug("Loading service data for: %s", desc.Name)

	serviceLoader, ok := GetServiceLoader(desc.SType)
	if !ok {
		log.Error("Unknown service '%s' type: %s", desc.Name, desc.SType)
		return nil, false
	}
	svcInstance, err := serviceLoader(s, desc)
	if err != nil {
		log.Error("Service '%s' was not loaded because of: %s", desc.Name, err)
		return nil, false
	}
	return svcInstance, true
}