Beispiel #1
0
        public ComputationJob(
            Job job, JobsDBDataContext jobsDataContext,      // Reference to Jobs database contents including query
            SqlExtendedConfigurationProvider configProvider, // current FetchClimate configuration
            JobSettings settings, DataSetUri resultDataSetUri
            )
            : base(job, jobsDataContext, settings)
        {
            this.configProvider = configProvider;
            jobDataset          = DataSet.Open(resultDataSetUri);
            var wholeRequest = jobDataset.ToFetchRequest();
            var subJob       = JobManager.EvaluateSubrequestData(wholeRequest, job.PartsCount, job.PartNo);

            resultOrigin = subJob.Item2;
            Request      = subJob.Item1;
        }
Beispiel #2
0
        public SystemStatus Get()
        {
            JobsDBDataContext dataContext = new JobsDBDataContext(FrontendSettings.Current.JobsDatabaseConnectionString);

            var failedHashes = dataContext.Jobs.Where(j => j.Status == (byte)JobOrPartState.Failed).Select(j => j.Hash).Distinct().ToArray();
            var activeParts  = dataContext.Jobs.Where(j => j.Status < (byte)JobOrPartState.Completed).ToArray().
                               Where(j => !failedHashes.Contains(j.Hash)).ToArray();
            var activeHashes  = activeParts.Select(p => p.Hash).Distinct().Count();
            int runningHashes = activeParts.Where(p => p.Status == (byte)JobOrPartState.InProgress).Select(p => p.Hash).Distinct().Count();

            return(new SystemStatus
            {
                pendingRequests = activeHashes - runningHashes,
                activeRequests = runningHashes,
                pendingParts = activeParts.Count(j => j.Status == (byte)JobOrPartState.Pending),
                activeParts = activeParts.Count(j => j.Status == (byte)JobOrPartState.InProgress)
            });
        }
Beispiel #3
0
 public CleanUpJob(Job job, JobsDBDataContext jobsDataContext, JobManager jobManager, TimeSpan timeBeforeDeletion, JobSettings settings)
     : base(job, jobsDataContext, settings)
 {
     this.timeBeforeDeletion = timeBeforeDeletion;
     this.localJobManager    = jobManager;
 }