public ChildTaskIndex(ICassandraCluster cassandraCluster, IRtqSettings rtqSettings, ISerializer serializer, ITaskMetaStorage taskMetaStorage)
 {
     this.cassandraCluster = cassandraCluster;
     this.rtqSettings      = rtqSettings;
     this.serializer       = serializer;
     this.taskMetaStorage  = taskMetaStorage;
 }
Esempio n. 2
0
        public RemoteTaskQueue(ILog logger,
                               ISerializer serializer,
                               IGlobalTime globalTime,
                               ICassandraCluster cassandraCluster,
                               IRtqSettings rtqSettings,
                               IRtqTaskDataRegistry taskDataRegistry,
                               IRtqProfiler rtqProfiler)
        {
            QueueKeyspace    = rtqSettings.QueueKeyspace;
            TaskTtl          = rtqSettings.TaskTtl;
            Logger           = logger.ForContext("CassandraDistributedTaskQueue");
            Serializer       = serializer;
            GlobalTime       = globalTime;
            TaskDataRegistry = taskDataRegistry;
            enableContinuationOptimization = rtqSettings.EnableContinuationOptimization;
            minTicksHolder             = new RtqMinTicksHolder(cassandraCluster, rtqSettings);
            TaskMinimalStartTicksIndex = new TaskMinimalStartTicksIndex(cassandraCluster, serializer, rtqSettings, new OldestLiveRecordTicksHolder(minTicksHolder), Logger);
            var taskMetaStorage = new TaskMetaStorage(cassandraCluster, serializer, rtqSettings, Logger);

            EventLogRepository       = new EventLogRepository(serializer, cassandraCluster, rtqSettings, minTicksHolder);
            childTaskIndex           = new ChildTaskIndex(cassandraCluster, rtqSettings, serializer, taskMetaStorage);
            HandleTasksMetaStorage   = new HandleTasksMetaStorage(taskMetaStorage, TaskMinimalStartTicksIndex, EventLogRepository, GlobalTime, childTaskIndex, taskDataRegistry, Logger);
            TaskDataStorage          = new TaskDataStorage(cassandraCluster, rtqSettings, Logger);
            TaskExceptionInfoStorage = new TaskExceptionInfoStorage(cassandraCluster, serializer, rtqSettings, Logger);
            HandleTaskCollection     = new HandleTaskCollection(HandleTasksMetaStorage, TaskDataStorage, TaskExceptionInfoStorage, rtqProfiler);
            lazyRemoteLockCreator    = new Lazy <IRemoteLockCreator>(() =>
            {
                var remoteLockImplementationSettings = CassandraRemoteLockImplementationSettings.Default(rtqSettings.QueueKeyspace, RtqColumnFamilyRegistry.LocksColumnFamilyName);
                var remoteLockImplementation         = new CassandraRemoteLockImplementation(cassandraCluster, serializer, remoteLockImplementationSettings);
                var remoteLockerMetrics = new RemoteLockerMetrics($"{rtqSettings.QueueKeyspace}_{RtqColumnFamilyRegistry.LocksColumnFamilyName}");
                return(new RemoteLocker(remoteLockImplementation, remoteLockerMetrics, Logger));
            });
            Profiler = rtqProfiler;
        }
Esempio n. 3
0
 public EventLogRepository(ISerializer serializer,
                           ICassandraCluster cassandraCluster,
                           IRtqSettings rtqSettings,
                           IMinTicksHolder minTicksHolder)
 {
     this.serializer     = serializer;
     this.minTicksHolder = minTicksHolder;
     cfConnection        = cassandraCluster.RetrieveColumnFamilyConnection(rtqSettings.QueueKeyspace, ColumnFamilyName);
 }
 public TaskMinimalStartTicksIndex(ICassandraCluster cassandraCluster,
                                   ISerializer serializer,
                                   IRtqSettings rtqSettings,
                                   IOldestLiveRecordTicksHolder oldestLiveRecordTicksHolder,
                                   ILog logger)
 {
     this.cassandraCluster            = cassandraCluster;
     this.serializer                  = serializer;
     this.oldestLiveRecordTicksHolder = oldestLiveRecordTicksHolder;
     this.logger  = logger.ForContext(nameof(TaskMinimalStartTicksIndex));
     keyspaceName = rtqSettings.QueueKeyspace;
 }
        public TestCounterRepository(ILog log,
                                     ICassandraCluster cassandraCluster,
                                     ISerializer serializer,
                                     IGlobalTime globalTime,
                                     IRtqSettings rtqSettings)
        {
            this.serializer = serializer;
            this.globalTime = globalTime;
            var keyspaceName = rtqSettings.QueueKeyspace;

            cfConnection = cassandraCluster.RetrieveColumnFamilyConnection(keyspaceName, ColumnFamilyName);
            var remoteLockImplementationSettings = CassandraRemoteLockImplementationSettings.Default(keyspaceName, RtqColumnFamilyRegistry.LocksColumnFamilyName);
            var remoteLockImplementation         = new CassandraRemoteLockImplementation(cassandraCluster, serializer, remoteLockImplementationSettings);

            remoteLockCreator = new RemoteLocker(remoteLockImplementation, new RemoteLockerMetrics(keyspaceName), log);
        }
Esempio n. 6
0
        public GlobalTimeProxy(ICassandraCluster cassandraCluster, IRtqSettings rtqSettings)
        {
            var maxTicksCfConnection = cassandraCluster.RetrieveColumnFamilyConnection(rtqSettings.QueueKeyspace, ColumnFamilyName);

            globalTime = new GlobalTime(maxTicksCfConnection);
        }
 public SmallTtlRtqSettings(IRtqSettings baseSettings, TimeSpan taskTtl)
 {
     this.baseSettings = baseSettings;
     TaskTtl           = taskTtl;
 }
Esempio n. 8
0
 public TestTaskLogger(ICassandraCluster cassandraCluster, IRtqSettings rtqSettings)
 {
     cfConnection = cassandraCluster.RetrieveColumnFamilyConnection(rtqSettings.QueueKeyspace, ColumnFamilyName);
 }
        public TaskMetaStorage(ICassandraCluster cassandraCluster, ISerializer serializer, IRtqSettings rtqSettings, ILog logger)
        {
            this.serializer = serializer;
            var settings = new TimeBasedBlobStorageSettings(rtqSettings.QueueKeyspace, largeBlobsCfName, regularBlobsCfName);

            timeBasedBlobStorage = new TimeBasedBlobStorage(settings, cassandraCluster, logger.ForContext(nameof(TaskMetaStorage)));
        }
 public TaskExceptionInfoStorage(ICassandraCluster cassandraCluster, ISerializer serializer, IRtqSettings rtqSettings, ILog logger)
 {
     this.serializer      = serializer;
     timeBasedBlobStorage = new SinglePartitionTimeBasedBlobStorage(rtqSettings.QueueKeyspace, timeBasedCfName, cassandraCluster, logger.ForContext(nameof(TaskExceptionInfoStorage)));
 }
        public RtqMinTicksHolder(ICassandraCluster cassandraCluster, IRtqSettings rtqSettings)
        {
            var minTicksCfConnection = cassandraCluster.RetrieveColumnFamilyConnection(rtqSettings.QueueKeyspace, ColumnFamilyName);

            minTicksHolder = new MinTicksHolder(minTicksCfConnection);
        }