Emcee

Форк
0
/
WorkerPermissionAwareDequeueableBucketSource.swift 
27 строк · 1.0 Кб
1
import BalancingBucketQueue
2
import BucketQueue
3
import BucketQueueModels
4
import QueueCommunication
5
import QueueModels
6
import WorkerCapabilitiesModels
7

8
public final class WorkerPermissionAwareDequeueableBucketSource: DequeueableBucketSource {
9
    private let dequeueableBucketSource: DequeueableBucketSource
10
    private let workerPermissionProvider: WorkerPermissionProvider
11

12
    public init(
13
        dequeueableBucketSource: DequeueableBucketSource,
14
        workerPermissionProvider: WorkerPermissionProvider
15
    ) {
16
        self.dequeueableBucketSource = dequeueableBucketSource
17
        self.workerPermissionProvider = workerPermissionProvider
18
    }
19

20
    public func dequeueBucket(workerCapabilities: Set<WorkerCapability>, workerId: WorkerId) -> DequeuedBucket? {
21
        guard workerPermissionProvider.utilizationPermissionForWorker(workerId: workerId) == .allowedToUtilize else {
22
            return nil
23
        }
24

25
        return dequeueableBucketSource.dequeueBucket(workerCapabilities: workerCapabilities, workerId: workerId)
26
    }
27
}
28

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.