public DefaultRedisWorkerOptions() { Audit = true; Retries = 3; MaxDegreeOfParallelism = 5; ProcessingGracePeriod = new TimeSpan(0, 5, 0); OrphanedInProcessInterval = new TimeSpan(0, 5, 0); NamingStrategy = new DefaultRedisWorkerNamingStrategy(typeof(TWork).Name); }
public static void QueueWork <TWork>(this IRedisClient redisClient, TWork work, IRedisWorkerNamingStrategy redisWorkerNamingStrategy) { var workId = Guid.NewGuid().ToString(); using (var redisTransaction = redisClient.CreateTransaction()) { var redisWork = new RedisWork <TWork> { WhenQueued = DateTime.UtcNow, RetryCount = 0, Work = work }; var serializedRedisWork = JsonSerializer.SerializeToString(redisWork); redisTransaction.QueueCommand(client => client.PushItemToList(redisWorkerNamingStrategy.QueueName, workId)); redisTransaction.QueueCommand(client => client.SetEntryInHash(redisWorkerNamingStrategy.WorkName, workId, serializedRedisWork)); redisTransaction.Commit(); } }