public override void SetJobState([NotNull] string jobId, [NotNull] IState state) { if (jobId == null) { throw new ArgumentNullException(nameof(jobId)); } if (state == null) { throw new ArgumentNullException(nameof(state)); } _transaction.HashSetAsync(_storage.GetRedisKey($"job:{jobId}"), "State", state.Name); _transaction.KeyDeleteAsync(_storage.GetRedisKey($"job:{jobId}:state")); var storedData = new Dictionary <string, string>(state.SerializeData()) { { "State", state.Name } }; if (state.Reason != null) { storedData.Add("Reason", state.Reason); } _transaction.HashSetAsync(_storage.GetRedisKey($"job:{jobId}:state"), storedData.ToHashEntries()); AddJobState(jobId, state); }
public override string CreateExpiredJob( Job job, IDictionary <string, string> parameters, DateTime createdAt, TimeSpan expireIn) { var jobId = Guid.NewGuid().ToString(); var invocationData = InvocationData.Serialize(job); // Do not modify the original parameters. var storedParameters = new Dictionary <string, string>(parameters); storedParameters.Add("Type", invocationData.Type); storedParameters.Add("Method", invocationData.Method); storedParameters.Add("ParameterTypes", invocationData.ParameterTypes); storedParameters.Add("Arguments", invocationData.Arguments); storedParameters.Add("CreatedAt", JobHelper.SerializeDateTime(createdAt)); var transaction = Redis.CreateTransaction(); transaction.HashSetAsync( string.Format(RedisStorage.Prefix + "job:{0}", jobId), storedParameters.ToHashEntries()); transaction.KeyExpireAsync( string.Format(RedisStorage.Prefix + "job:{0}", jobId), expireIn); // TODO: check return value transaction.Execute(); return(jobId); }
public override string CreateExpiredJob( [NotNull] Job job, [NotNull] IDictionary <string, string> parameters, DateTime createdAt, TimeSpan expireIn) { if (job == null) { throw new ArgumentNullException(nameof(job)); } if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } var jobId = Guid.NewGuid().ToString(); var invocationData = InvocationData.Serialize(job); // Do not modify the original parameters. var storedParameters = new Dictionary <string, string>(parameters) { { "Type", invocationData.Type }, { "Method", invocationData.Method }, { "ParameterTypes", invocationData.ParameterTypes }, { "Arguments", invocationData.Arguments }, { "CreatedAt", JobHelper.SerializeDateTime(createdAt) } }; if (_storage.UseTransactions) { var transaction = Redis.CreateTransaction(); transaction.HashSetAsync(_storage.GetRedisKey($"job:{jobId}"), storedParameters.ToHashEntries()); transaction.KeyExpireAsync(_storage.GetRedisKey($"job:{jobId}"), expireIn); // TODO: check return value transaction.Execute(); } else { Redis.HashSetAsync(_storage.GetRedisKey($"job:{jobId}"), storedParameters.ToHashEntries()); Redis.KeyExpireAsync(_storage.GetRedisKey($"job:{jobId}"), expireIn); } return(jobId); }
public override void SetJobState(string jobId, IState state) { _transaction.HashSetAsync( RedisStorage.Prefix + string.Format("job:{0}", jobId), "State", state.Name); _transaction.KeyDeleteAsync(RedisStorage.Prefix + string.Format("job:{0}:state", jobId)); var storedData = new Dictionary <string, string>(state.SerializeData()); storedData.Add("State", state.Name); if (state.Reason != null) { storedData.Add("Reason", state.Reason); } _transaction.HashSetAsync(RedisStorage.Prefix + string.Format("job:{0}:state", jobId), storedData.ToHashEntries()); AddJobState(jobId, state); }
public void SetJobState(string jobId, IState state) { _transaction.HashSetAsync( String.Format(RedisStorage.Prefix + "job:{0}", jobId), "State", state.Name); _transaction.KeyDeleteAsync(String.Format(RedisStorage.Prefix + "job:{0}:state", jobId)); var storedData = new Dictionary<string, string>(state.SerializeData()); storedData.Add("State", state.Name); if (state.Reason != null) { storedData.Add("Reason", state.Reason); } _transaction.HashSetAsync(String.Format(RedisStorage.Prefix + "job:{0}:state", jobId),storedData.ToHashEntries()); AddJobState(jobId, state); }
public override string CreateExpiredJob( Job job, IDictionary<string, string> parameters, DateTime createdAt, TimeSpan expireIn) { var jobId = Guid.NewGuid().ToString(); var invocationData = InvocationData.Serialize(job); // Do not modify the original parameters. var storedParameters = new Dictionary<string, string>(parameters); storedParameters.Add("Type", invocationData.Type); storedParameters.Add("Method", invocationData.Method); storedParameters.Add("ParameterTypes", invocationData.ParameterTypes); storedParameters.Add("Arguments", invocationData.Arguments); storedParameters.Add("CreatedAt", JobHelper.SerializeDateTime(createdAt)); var transaction = Redis.CreateTransaction(); transaction.HashSetAsync( string.Format(RedisStorage.Prefix + "job:{0}", jobId), storedParameters.ToHashEntries()); transaction.KeyExpireAsync( string.Format(RedisStorage.Prefix + "job:{0}", jobId), expireIn); // TODO: check return value transaction.Execute(); return jobId; }