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 BlobId Write([NotNull] TaskMetaInformation taskMeta, [NotNull] byte[] taskData) { if (!taskMeta.IsTimeBased()) { throw new InvalidOperationException(string.Format("TaskId is not time-based: {0}", taskMeta.Id)); } var blobId = TimeBasedBlobStorage.GenerateNewBlobId(taskData.Length); var timestamp = blobId.Id.GetTimestamp().Ticks; timeBasedBlobStorage.Write(blobId, taskData, timestamp, taskMeta.GetTtl()); return(blobId); }