Ejemplo n.º 1
0
        public override JobData GetJobData(string key)
        {
            key.ThrowIfNull("key");

            using (var repository = _storage.Repository.OpenSession()) {
                var id      = _storage.Repository.GetId(typeof(RavenJob), key);
                var jobData = repository.Load <RavenJob>(id);

                if (jobData == null)
                {
                    return(null);
                }

                Job job = null;
                JobLoadException loadException = null;

                try
                {
                    job = jobData.InvocationData.Deserialize();
                }
                catch (JobLoadException ex)
                {
                    loadException = ex;
                }

                return(new JobData {
                    Job = job,
                    State = jobData.StateData?.Name,
                    CreatedAt = jobData.CreatedAt,
                    LoadException = loadException
                });
            }
        }
        public override JobData GetJobData(string jobId)
        {
            if (!_dispatcher.TryGetJobData(jobId, out var entry))
            {
                return(null);
            }

            Job job = null;
            JobLoadException loadException = null;

            try
            {
                job = entry.InvocationData.DeserializeJob();
            }
            catch (JobLoadException ex)
            {
                loadException = ex;
            }

            return(new JobData
            {
                Job = job,
                LoadException = loadException,
                CreatedAt = entry.CreatedAt,
                State = entry.State?.Name
            });
        }
Ejemplo n.º 3
0
        public override JobData GetJobData(string jobId)
        {
            Guard.ArgumentNotNull(jobId, "jobId");

            var jobData = _data.Get <JobDto>(jobId);

            if (jobData == null)
            {
                return(null);
            }

            var invocationData = JobHelper.FromJson <InvocationData>(jobData.InvocationData);

            invocationData.Arguments = jobData.Arguments;

            Job job = null;
            JobLoadException loadException = null;

            try
            {
                job = invocationData.Deserialize();
            }
            catch (JobLoadException ex)
            {
                loadException = ex;
            }

            return(new JobData
            {
                Job = job,
                State = jobData.StateName,
                CreatedAt = jobData.CreatedAt,
                LoadException = loadException
            });
        }
Ejemplo n.º 4
0
        public override JobData GetJobData(string id)
        {
            id.ThrowIfNull("id");

            using (var repository = new Repository()) {
                var jobData = repository.Session.Load <RavenJob>(id);

                if (jobData == null)
                {
                    return(null);
                }

                var invocationData = JobHelper.FromJson <InvocationData>(jobData.InvocationData);
                invocationData.Arguments = jobData.Arguments;

                Job job = null;
                JobLoadException loadException = null;

                try {
                    job = invocationData.Deserialize();
                } catch (JobLoadException ex) {
                    loadException = ex;
                }

                return(new JobData
                {
                    Job = job,
                    State = jobData.StateName,
                    CreatedAt = jobData.CreatedAt,
                    LoadException = loadException
                });
            }
        }
Ejemplo n.º 5
0
        public JobData GetJobData(string id)
        {
            var storedData = Redis.GetAllEntriesFromHash(
                String.Format(RedisStorage.Prefix + "job:{0}", id));

            if (storedData.Count == 0)
            {
                return(null);
            }

            string type           = null;
            string method         = null;
            string parameterTypes = null;
            string arguments      = null;
            string createdAt      = null;

            if (storedData.ContainsKey("Type"))
            {
                type = storedData["Type"];
            }
            if (storedData.ContainsKey("Method"))
            {
                method = storedData["Method"];
            }
            if (storedData.ContainsKey("ParameterTypes"))
            {
                parameterTypes = storedData["ParameterTypes"];
            }
            if (storedData.ContainsKey("Arguments"))
            {
                arguments = storedData["Arguments"];
            }
            if (storedData.ContainsKey("CreatedAt"))
            {
                createdAt = storedData["CreatedAt"];
            }

            Job job = null;
            JobLoadException loadException = null;

            var invocationData = new InvocationData(type, method, parameterTypes, arguments);

            try
            {
                job = invocationData.Deserialize();
            }
            catch (JobLoadException ex)
            {
                loadException = ex;
            }

            return(new JobData
            {
                Job = job,
                State = storedData.ContainsKey("State") ? storedData["State"] : null,
                CreatedAt = JobHelper.FromNullableStringTimestamp(createdAt) ?? DateTime.MinValue,
                LoadException = loadException
            });
        }
Ejemplo n.º 6
0
        public void Ctor_CreatesException_WithGivenMessageAnInnerException()
        {
            var innerException = new Exception();
            var exception      = new JobLoadException("1", innerException);

            Assert.Equal("1", exception.Message);
            Assert.Same(innerException, exception.InnerException);
        }
Ejemplo n.º 7
0
        public override JobData GetJobData(string id)
        {
            var storedData = Redis.HashGetAll(string.Format(RedisStorage.Prefix + "job:{0}", id));

            if (storedData.Length == 0)
            {
                return(null);
            }

            string type           = null;
            string method         = null;
            string parameterTypes = null;
            string arguments      = null;
            string createdAt      = null;

            if (storedData.ContainsKey("Type"))
            {
                type = storedData.First(x => x.Name == "Type").Value;
            }
            if (storedData.ContainsKey("Method"))
            {
                method = storedData.First(x => x.Name == "Method").Value;
            }
            if (storedData.ContainsKey("ParameterTypes"))
            {
                parameterTypes = storedData.First(x => x.Name == "ParameterTypes").Value;
            }
            if (storedData.ContainsKey("Arguments"))
            {
                arguments = storedData.First(x => x.Name == "Arguments").Value;
            }
            if (storedData.ContainsKey("CreatedAt"))
            {
                createdAt = storedData.First(x => x.Name == "CreatedAt").Value;
            }

            Job job = null;
            JobLoadException loadException = null;

            var invocationData = new InvocationData(type, method, parameterTypes, arguments);

            try
            {
                job = invocationData.Deserialize();
            }
            catch (JobLoadException ex)
            {
                loadException = ex;
            }

            return(new JobData
            {
                Job = job,
                State = storedData.ContainsKey("State") ? (string)storedData.First(x => x.Name == "State").Value : null,
                CreatedAt = JobHelper.DeserializeNullableDateTime(createdAt) ?? DateTime.MinValue,
                LoadException = loadException
            });
        }
Ejemplo n.º 8
0
        public override JobData GetJobData(string id)
        {
            if (id == null)
            {
                throw new ArgumentNullException(nameof(id));
            }

            if (!long.TryParse(id, out var parsedId))
            {
                return(null);
            }

            string sql =
                $@"select InvocationData, StateName, Arguments, CreatedAt from [{_storage.SchemaName}].Job with (readcommittedlock, forceseek) where Id = @id";

            return(_storage.UseConnection(_dedicatedConnection, connection =>
            {
                var jobData = connection.Query <SqlJob>(sql, new { id = parsedId }, commandTimeout: _storage.CommandTimeout)
                              .SingleOrDefault();

                if (jobData == null)
                {
                    return null;
                }

                // TODO: conversion exception could be thrown.
                var invocationData = InvocationData.DeserializePayload(jobData.InvocationData);

                if (!String.IsNullOrEmpty(jobData.Arguments))
                {
                    invocationData.Arguments = jobData.Arguments;
                }

                Job job = null;
                JobLoadException loadException = null;

                try
                {
                    job = invocationData.DeserializeJob();
                }
                catch (JobLoadException ex)
                {
                    loadException = ex;
                }

                return new JobData
                {
                    Job = job,
                    State = jobData.StateName,
                    CreatedAt = jobData.CreatedAt,
                    LoadException = loadException
                };
            }));
        }
        public override JobData GetJobData(string jobId)
        {
            if (jobId == null)
            {
                throw new ArgumentNullException(nameof(jobId));
            }
            var converter = StringToInt32Converter.Convert(jobId);

            if (!converter.Valid)
            {
                return(null);
            }


            Logger.InfoFormat("Get job data for job '{0}'", jobId);

            return(Storage.UseSession(session =>
            {
                var jobData =
                    session
                    .Query <_Job>()
                    .SingleOrDefault(i => i.Id == converter.Value);

                if (jobData == null)
                {
                    return null;
                }

                var invocationData = JobHelper.FromJson <InvocationData>(jobData.InvocationData);
                invocationData.Arguments = jobData.Arguments;

                Job job = null;
                JobLoadException loadException = null;

                try
                {
                    job = invocationData.Deserialize();
                }
                catch (JobLoadException ex)
                {
                    loadException = ex;
                }

                return new JobData
                {
                    Job = job,
                    State = jobData.StateName,
                    CreatedAt = jobData.CreatedAt,
                    LoadException = loadException
                };
            }));
        }
        public override JobData GetJobData(string jobId)
        {
            Guard.ThrowIfNull(jobId, nameof(jobId));

            const string sql = @"
SELECT ""invocationdata"" ""invocationData"", ""statename"" ""stateName"", ""arguments"", ""createdat"" ""createdAt"" 
FROM job 
WHERE ""id"" = @id;
";

            SqlJob jobData;

            using (var connectionHolder = _connectionProvider.AcquireConnection())
            {
                jobData = connectionHolder.Connection
                          .Query <SqlJob>(sql, new { id = Convert.ToInt32(jobId, CultureInfo.InvariantCulture) })
                          .SingleOrDefault();
            }

            if (jobData == null)
            {
                return(null);
            }

            // TODO: conversion exception could be thrown.
            var invocationData = JobHelper.FromJson <InvocationData>(jobData.InvocationData);

            invocationData.Arguments = jobData.Arguments;

            Job job = null;
            JobLoadException loadException = null;

            try
            {
                job = invocationData.Deserialize();
            }
            catch (JobLoadException ex)
            {
                loadException = ex;
            }

            return(new JobData
            {
                Job = job,
                State = jobData.StateName,
                CreatedAt = jobData.CreatedAt,
                LoadException = loadException
            });
        }
        public override JobData GetJobData(string id)
        {
            if (id == null)
            {
                throw new ArgumentNullException("id");
            }

            string sql =
                @"
SELECT ""invocationdata"" ""invocationData"", ""statename"" ""stateName"", ""arguments"", ""createdat"" ""createdAt"" 
FROM """ + _options.SchemaName + @""".""job"" 
WHERE ""id"" = @id;
";

            var jobData = _connection.Query <SqlJob>(sql, new { id = Convert.ToInt32(id, CultureInfo.InvariantCulture) })
                          .SingleOrDefault();

            if (jobData == null)
            {
                return(null);
            }

            // TODO: conversion exception could be thrown.
            var invocationData = JobHelper.FromJson <InvocationData>(jobData.InvocationData);

            invocationData.Arguments = jobData.Arguments;

            Job job = null;
            JobLoadException loadException = null;

            try
            {
                job = invocationData.Deserialize();
            }
            catch (JobLoadException ex)
            {
                loadException = ex;
            }

            return(new JobData
            {
                Job = job,
                State = jobData.StateName,
                CreatedAt = jobData.CreatedAt,
                LoadException = loadException
            });
        }
        public override JobData GetJobData(string jobId)
        {
            if (jobId == null)
            {
                throw new ArgumentNullException("jobId");
            }

            return(_storage.UseConnection(connection =>
            {
                var jobData =
                    connection
                    .Query <SqlJob>(
                        "select InvocationData, StateName, Arguments, CreatedAt " +
                        $"from `{_storageOptions.TablesPrefix}Job` " +
                        "where Id = @id",
                        new { id = jobId })
                    .SingleOrDefault();

                if (jobData == null)
                {
                    return null;
                }

                var invocationData = JobHelper.FromJson <InvocationData>(jobData.InvocationData);
                invocationData.Arguments = jobData.Arguments;

                Job job = null;
                JobLoadException loadException = null;

                try
                {
                    job = invocationData.Deserialize();
                }
                catch (JobLoadException ex)
                {
                    loadException = ex;
                }

                return new JobData
                {
                    Job = job,
                    State = jobData.StateName,
                    CreatedAt = jobData.CreatedAt,
                    LoadException = loadException
                };
            }));
        }
        public override JobData GetJobData(string jobId)
        {
            if (jobId == null)
            {
                throw new ArgumentNullException(nameof(jobId));
            }

            var iJobId  = int.Parse(jobId);
            var jobData = DbContext
                          .HangfireJobRepository
                          .FirstOrDefault(_ => _.Id == iJobId);

            if (jobData == null)
            {
                return(null);
            }

            // TODO: conversion exception could be thrown.
            var invocationData = SerializationHelper.Deserialize <InvocationData>(jobData.InvocationData,
                                                                                  SerializationOption.User);

            if (!string.IsNullOrEmpty(jobData.Arguments))
            {
                invocationData.Arguments = jobData.Arguments;
            }

            Job job = null;
            JobLoadException loadException = null;

            try
            {
                job = invocationData.DeserializeJob();
            }
            catch (JobLoadException ex)
            {
                loadException = ex;
            }

            return(new JobData
            {
                Job = job,
                InvocationData = invocationData,
                State = jobData.StateName,
                CreatedAt = jobData.CreatedAt,
                LoadException = loadException
            });
        }
Ejemplo n.º 14
0
        public void Instance_CanBeSerializedAndDeserialized()
        {
            var exception = new JobLoadException("1", new Exception());
            JobLoadException deserializedException;

            using (var stream = new MemoryStream())
            {
                var formatter = new BinaryFormatter();
                formatter.Serialize(stream, exception);

                stream.Position = 0;

                deserializedException = (JobLoadException)formatter.Deserialize(stream);
            }

            Assert.Equal("1", deserializedException.Message);
        }
Ejemplo n.º 15
0
        public override JobData GetJobData(string id)
        {
            if (id == null)
            {
                throw new ArgumentNullException("id");
            }

            var sql =
                string.Format(@"select InvocationData, StateName, Arguments, CreatedAt from [{0}.Job] where Id = @id",
                              _storage.GetSchemaName());

            return(_storage.UseConnection(connection =>
            {
                var jobData = connection.Query <SqlJob>(sql, new { id })
                              .SingleOrDefault();

                if (jobData == null)
                {
                    return null;
                }

                // TODO: conversion exception could be thrown.
                var invocationData = JobHelper.FromJson <InvocationData>(jobData.InvocationData);
                invocationData.Arguments = jobData.Arguments;

                Job job = null;
                JobLoadException loadException = null;

                try
                {
                    job = invocationData.Deserialize();
                }
                catch (JobLoadException ex)
                {
                    loadException = ex;
                }

                return new JobData
                {
                    Job = job,
                    State = jobData.StateName,
                    CreatedAt = jobData.CreatedAt,
                    LoadException = loadException
                };
            }));
        }
Ejemplo n.º 16
0
        public override JobData GetJobData(string id)
        {
            if (id == null)
            {
                throw new ArgumentNullException(nameof(id));
            }

            string sql =
                $@"select InvocationData, StateName, Arguments, CreatedAt from [{_storage.SchemaName}].Job with (readcommittedlock) where Id = @id";

            return(_storage.UseConnection(connection =>
            {
                var jobData = connection.Query <SqlJob>(sql, new { id = Guid.Parse(id) }, commandTimeout: _storage.CommandTimeout)
                              .SingleOrDefault();

                if (jobData == null)
                {
                    return null;
                }

                // TODO: conversion exception could be thrown.
                var invocationData = JobHelper.FromJson <InvocationData>(jobData.InvocationData);
                invocationData.Arguments = jobData.Arguments;

                Job job = null;
                JobLoadException loadException = null;

                try
                {
                    job = invocationData.Deserialize();
                }
                catch (JobLoadException ex)
                {
                    loadException = ex;
                }

                return new JobData
                {
                    Job = job,
                    State = jobData.StateName,
                    CreatedAt = jobData.CreatedAt,
                    LoadException = loadException
                };
            }));
        }
Ejemplo n.º 17
0
        public override JobData GetJobData(string jobId)
        {
            if (jobId == null)
            {
                throw new ArgumentNullException(nameof(jobId));
            }

            return(_storage.UseConnection(connection =>
            {
                var jobData = connection.QuerySingleOrDefault <SqlJob>(
                    "SELECT INVOCATION_DATA AS InvocationData, STATE_NAME AS StateName, ARGUMENTS AS Arguments, CREATED_AT AS CreatedAt " +
                    "  FROM HF_JOB " +
                    " WHERE ID = :ID",
                    new { ID = jobId });

                if (jobData == null)
                {
                    return null;
                }

                var invocationData = JobHelper.FromJson <InvocationData>(jobData.InvocationData);
                invocationData.Arguments = jobData.Arguments;

                Job job = null;
                JobLoadException loadException = null;

                try
                {
                    job = invocationData.Deserialize();
                }
                catch (JobLoadException ex)
                {
                    loadException = ex;
                }

                return new JobData
                {
                    Job = job,
                    State = jobData.StateName,
                    CreatedAt = jobData.CreatedAt,
                    LoadException = loadException
                };
            }));
        }
Ejemplo n.º 18
0
        public JobData GetJobData(string id)
        {
            if (id == null)
            {
                throw new ArgumentNullException("id");
            }

            string sql = string.Format(@"SELECT invocationdata, statename, arguments, createdat
                FROM ""{0}.JOB"" 
                WHERE id = @id;", _options.Prefix);

            var jobData = _connection.Query <SqlJob>(sql, new { id = Convert.ToInt32(id, CultureInfo.InvariantCulture) })
                          .SingleOrDefault();

            if (jobData == null)
            {
                return(null);
            }

            // TODO: conversion exception could be thrown.
            var invocationData = JobHelper.FromJson <InvocationData>(jobData.InvocationData);

            invocationData.Arguments = jobData.Arguments;

            Job job = null;
            JobLoadException loadException = null;

            try
            {
                job = invocationData.Deserialize();
            }
            catch (JobLoadException ex)
            {
                loadException = ex;
            }

            return(new JobData
            {
                Job = job,
                State = jobData.StateName,
                CreatedAt = jobData.CreatedAt,
                LoadException = loadException
            });
        }
Ejemplo n.º 19
0
        public Job TryGetJob(out JobLoadException exception)
        {
            exception = null;

            if (Job != null)
            {
                return(new Job(Job.Type, Job.Method, Job.Args.ToArray()));
            }

            try
            {
                return(InvocationData.DeserializeJob());
            }
            catch (JobLoadException ex)
            {
                exception = ex;
                return(null);
            }
        }
Ejemplo n.º 20
0
        public override JobData GetJobData(string jobId)
        {
            if (jobId == null)
            {
                throw new ArgumentNullException(nameof(jobId));
            }
            var iJobId  = int.Parse(jobId);
            var jobData = Database
                          .Job
                          .Find(_ => _.Id == iJobId)
                          .FirstOrDefault();

            if (jobData == null)
            {
                return(null);
            }

            // TODO: conversion exception could be thrown.
            var invocationData = SerializationHelper.Deserialize <InvocationData>(jobData.InvocationData,
                                                                                  SerializationOption.User);

            invocationData.Arguments = jobData.Arguments;

            Job job = null;
            JobLoadException loadException = null;

            try
            {
                job = invocationData.Deserialize();
            }
            catch (JobLoadException ex)
            {
                loadException = ex;
            }

            return(new JobData
            {
                Job = job,
                State = jobData.StateName,
                CreatedAt = jobData.CreatedAt,
                LoadException = loadException
            });
        }
Ejemplo n.º 21
0
        public JobData GetJobData(string id)
        {
            if (id == null)
            {
                throw new ArgumentNullException("id");
            }

            const string sql =
                @"select InvocationData, StateName, Arguments, CreatedAt from HangFire.Job where Id = @id";

            var jobData = _connection.Query <SqlJob>(sql, new { id = id })
                          .SingleOrDefault();

            if (jobData == null)
            {
                return(null);
            }

            // TODO: conversion exception could be thrown.
            var invocationData = JobHelper.FromJson <InvocationData>(jobData.InvocationData);

            invocationData.Arguments = jobData.Arguments;

            Job job = null;
            JobLoadException loadException = null;

            try
            {
                job = invocationData.Deserialize();
            }
            catch (JobLoadException ex)
            {
                loadException = ex;
            }

            return(new JobData
            {
                Job = job,
                State = jobData.StateName,
                CreatedAt = jobData.CreatedAt,
                LoadException = loadException
            });
        }
Ejemplo n.º 22
0
        public override JobData GetJobData(string jobId)
        {
            if (jobId == null)
            {
                throw new ArgumentNullException(nameof(jobId));
            }

            var jobData = _dbContext
                          .JobGraph
                          .OfType <JobDto>()
                          .Find(Builders <JobDto> .Filter.Eq(_ => _.Id, ObjectId.Parse(jobId)))
                          .FirstOrDefault();

            if (jobData == null)
            {
                return(null);
            }

            // TODO: conversion exception could be thrown.
            var invocationData = JobHelper.FromJson <InvocationData>(jobData.InvocationData);

            invocationData.Arguments = jobData.Arguments;

            Job job = null;
            JobLoadException loadException = null;

            try
            {
                job = invocationData.Deserialize();
            }
            catch (JobLoadException ex)
            {
                loadException = ex;
            }

            return(new JobData
            {
                Job = job,
                State = jobData.StateName,
                CreatedAt = jobData.CreatedAt,
                LoadException = loadException
            });
        }
        public override JobData GetJobData(string jobId)
        {
            if (jobId == null)
            {
                throw new ArgumentNullException(nameof(jobId));
            }

            Uri uri = UriFactory.CreateDocumentUri(Storage.Options.DatabaseName, Storage.Options.CollectionName, jobId);
            Task <DocumentResponse <Documents.Job> > task = Storage.Client.ReadDocumentWithRetriesAsync <Documents.Job>(uri, new RequestOptions {
                PartitionKey = new PartitionKey((int)DocumentTypes.Job)
            });

            task.Wait();

            if (task.Result.Document != null)
            {
                Documents.Job  data           = task.Result;
                InvocationData invocationData = data.InvocationData;
                invocationData.Arguments = data.Arguments;

                Common.Job       job           = null;
                JobLoadException loadException = null;

                try
                {
                    job = invocationData.DeserializeJob();
                }
                catch (JobLoadException ex)
                {
                    loadException = ex;
                }

                return(new JobData
                {
                    Job = job,
                    State = data.StateName,
                    CreatedAt = data.CreatedOn,
                    LoadException = loadException
                });
            }

            return(null);
        }
Ejemplo n.º 24
0
        public override JobData GetJobData([NotNull] string jobId)
        {
            if (jobId == null)
            {
                throw new ArgumentNullException(nameof(jobId));
            }

            //var storedData = Redis.HashGetAll(_storage.GetRedisKey($"job:{jobId}"));
            var storedData = RedisClient.HGetAll(_storage.GetRedisKey($"job:{jobId}"));

            if (storedData.Count == 0)
            {
                return(null);
            }

            string type           = storedData.FirstOrDefault(x => x.Key == "Type").Value;
            string method         = storedData.FirstOrDefault(x => x.Key == "Method").Value;
            string parameterTypes = storedData.FirstOrDefault(x => x.Key == "ParameterTypes").Value;
            string arguments      = storedData.FirstOrDefault(x => x.Key == "Arguments").Value;
            string createdAt      = storedData.FirstOrDefault(x => x.Key == "CreatedAt").Value;

            Job job = null;
            JobLoadException loadException = null;

            var invocationData = new InvocationData(type, method, parameterTypes, arguments);

            try
            {
                job = invocationData.DeserializeJob();
            }
            catch (JobLoadException ex)
            {
                loadException = ex;
            }

            return(new JobData
            {
                Job = job,
                State = storedData.FirstOrDefault(x => x.Key == "State").Value,
                CreatedAt = JobHelper.DeserializeNullableDateTime(createdAt) ?? DateTime.MinValue,
                LoadException = loadException
            });
        }
Ejemplo n.º 25
0
        public override JobData GetJobData(string jobId)
        {
            if (jobId == null)
            {
                throw new ArgumentNullException("jobId");
            }

            JobDto jobData = AsyncHelper.RunSync(() => _database.Job
                                                 .Find(Builders <JobDto> .Filter.Eq(_ => _.Id, int.Parse(jobId)))
                                                 .FirstOrDefaultAsync());

            if (jobData == null)
            {
                return(null);
            }

            // TODO: conversion exception could be thrown.
            InvocationData invocationData = JobHelper.FromJson <InvocationData>(jobData.InvocationData);

            invocationData.Arguments = jobData.Arguments;

            Job job = null;
            JobLoadException loadException = null;

            try
            {
                job = invocationData.Deserialize();
            }
            catch (JobLoadException ex)
            {
                loadException = ex;
            }

            return(new JobData
            {
                Job = job,
                State = jobData.StateName,
                CreatedAt = jobData.CreatedAt,
                LoadException = loadException
            });
        }
Ejemplo n.º 26
0
        public override JobData GetJobData(string jobId)
        {
            if (jobId == null)
            {
                throw new ArgumentNullException(nameof(jobId));
            }

            Uri uri = UriFactory.CreateDocumentUri(Storage.Options.DatabaseName, Storage.Options.CollectionName, jobId);
            Task <DocumentResponse <Documents.Job> > task = Storage.Client.ReadDocumentAsync <Documents.Job>(uri);

            Documents.Job data = task.Result;

            if (data != null)
            {
                InvocationData invocationData = data.InvocationData;
                invocationData.Arguments = data.Arguments;

                Common.Job       job           = null;
                JobLoadException loadException = null;

                try
                {
                    job = invocationData.Deserialize();
                }
                catch (JobLoadException ex)
                {
                    loadException = ex;
                }

                return(new JobData
                {
                    Job = job,
                    State = data.StateName,
                    CreatedAt = data.CreatedOn,
                    LoadException = loadException
                });
            }

            return(null);
        }
Ejemplo n.º 27
0
        public override JobData GetJobData(string jobId)
        {
            if (jobId == null)
            {
                throw new ArgumentNullException(nameof(jobId));
            }

            Task <ItemResponse <Documents.Job> > task = Storage.Container.ReadItemWithRetriesAsync <Documents.Job>(jobId, new PartitionKey((int)DocumentTypes.Job));

            task.Wait();

            if (task.Result.Resource != null)
            {
                Documents.Job  data           = task.Result;
                InvocationData invocationData = data.InvocationData;
                invocationData.Arguments = data.Arguments;

                Common.Job       job           = null;
                JobLoadException loadException = null;

                try
                {
                    job = invocationData.DeserializeJob();
                }
                catch (JobLoadException ex)
                {
                    loadException = ex;
                }

                return(new JobData
                {
                    Job = job,
                    State = data.StateName,
                    CreatedAt = data.CreatedOn,
                    LoadException = loadException
                });
            }

            return(null);
        }
        public override JobData GetJobData(string jobId)
        {
            if (jobId == null)
            {
                throw new ArgumentNullException(nameof(jobId));
            }

            using var realm = _storage.GetRealm();
            var jobDto = realm.Find <JobDto>(jobId);

            if (jobDto == null)
            {
                return(null);
            }

            var invocationData = SerializationHelper.Deserialize <InvocationData>(jobDto.InvocationData);

            invocationData.Arguments = jobDto.Arguments;

            Job job = null;
            JobLoadException loadException = null;

            try
            {
                job = invocationData.DeserializeJob();
            }
            catch (JobLoadException ex)
            {
                _logger.WarnException($"Deserializing job {jobId} has failed.", ex);
                loadException = ex;
            }

            return(new JobData
            {
                Job = job,
                State = jobDto.StateName,
                CreatedAt = jobDto.Created.DateTime,
                LoadException = loadException
            });
        }
Ejemplo n.º 29
0
        public override JobData GetJobData(string jobId)
        {
            if (jobId == null)
            {
                throw new ArgumentNullException(nameof(jobId));
            }

            Entities.Job data = Storage.Client.CreateDocumentQuery <Entities.Job>(Storage.Collections.JobDocumentCollectionUri, QueryOptions)
                                .Where(j => j.Id == jobId)
                                .AsEnumerable()
                                .FirstOrDefault();

            if (data != null)
            {
                InvocationData invocationData = data.InvocationData;
                invocationData.Arguments = data.Arguments;

                Common.Job       job           = null;
                JobLoadException loadException = null;

                try
                {
                    job = invocationData.Deserialize();
                }
                catch (JobLoadException ex)
                {
                    loadException = ex;
                }

                return(new JobData
                {
                    Job = job,
                    State = data.StateName,
                    CreatedAt = data.CreatedOn,
                    LoadException = loadException
                });
            }

            return(null);
        }
Ejemplo n.º 30
0
        public JobData GetJobData(string jobId)
        {
            if (jobId == null)
            {
                throw new ArgumentNullException("jobId");
            }

            var jobData = _database.Job.FindOneById(int.Parse(jobId));

            if (jobData == null)
            {
                return(null);
            }

            // TODO: conversion exception could be thrown.
            var invocationData = JobHelper.FromJson <InvocationData>(jobData.InvocationData);

            invocationData.Arguments = jobData.Arguments;

            Job job = null;
            JobLoadException loadException = null;

            try
            {
                job = invocationData.Deserialize();
            }
            catch (JobLoadException ex)
            {
                loadException = ex;
            }

            return(new JobData
            {
                Job = job,
                State = jobData.StateName,
                CreatedAt = jobData.CreatedAt,
                LoadException = loadException
            });
        }