public void StopThread() { DatabaseOptionBase.UnAssignWorkerFromAllAssigned(DatabaseWorker, _mongoConnection); DatabaseWorker.Delete(_mongoConnection); DatabaseWorker = null; }
private void UnassignFromDeadWorkers() { if (_lastCheckForDeadWorkers + _timeToWaitBetweenChecksForDeadWorkers > Clock.Now) { return; } List <DatabaseWorker> deadWorkers = GetDeadWorkers(); deadWorkers.ForEach(worker => DatabaseOptionBase.UnAssignWorkerFromAllAssigned(worker, _connection)); _optionStatus.RemoveOptionsFromDeadWorkers(deadWorkers); _lastCheckForDeadWorkers = Clock.Now; }