/// <summary> /// Adds a job that has been sent to a client to the job maintenance engine. /// </summary> /// <param name="j"></param> /// <param name="request"></param> private void MaintainJobStatus(Job j, JobRequest request) { DateTime dueDate = DateTime.Now + TimeSpan.FromSeconds(request.JobHandleTimeoutSeconds); JobTimeoutModel model = new JobTimeoutModel(j.JobId, dueDate, request); JobMaintenanceHelper.AddJob(model); }
/// <summary> /// Adds a job to the queue. /// </summary> /// <param name="j"></param> public static void AddJob(JobTimeoutModel j) { lock (Queue) { Queue.Enqueue(j); } ResetEvent.Set(); }
public void TestContains() { PriorityLinkedList <JobTimeoutModel> pq = this.CreateSimpleQueue(); Assert.True(pq.Contains(this.j1)); Assert.True(pq.Contains(this.j2)); Assert.True(pq.Contains(this.j3)); JobTimeoutModel j4 = new JobTimeoutModel("abc", DateTime.Now + TimeSpan.FromMinutes(15), new JobRequest()); Assert.False(pq.Contains(j4)); }
public void TestPeek() { PriorityLinkedList <JobTimeoutModel> pq = this.CreateSimpleQueue(); JobTimeoutModel front = pq.Peek(); Assert.Equal(this.j1, front); Assert.Equal(3, pq.Count); pq.Clear(); front = pq.Peek(); Assert.Null(front); Assert.Equal(0, pq.Count); }
public void TestRemove3() { PriorityLinkedList <JobTimeoutModel> pq = this.CreateSimpleQueue(); pq.Remove(this.j3); JobTimeoutModel d1 = pq.Dequeue(); JobTimeoutModel d2 = pq.Dequeue(); Assert.Equal(d1, this.j1); Assert.Equal(d2, this.j2); // queue should be empty now Assert.Null(pq.Dequeue()); }
public void TestDequeue() { PriorityLinkedList <JobTimeoutModel> pq = this.CreateSimpleQueue(); JobTimeoutModel d1 = pq.Dequeue(); Assert.Equal(2, pq.Count); JobTimeoutModel d2 = pq.Dequeue(); Assert.Equal(1, pq.Count); JobTimeoutModel d3 = pq.Dequeue(); Assert.Equal(0, pq.Count); Assert.Equal(this.j1, d1); Assert.Equal(this.j2, d2); Assert.Equal(this.j3, d3); }
/// <summary> /// Removes a job from the timeout system. /// </summary> /// <param name="j"></param> public static void Remove(JobTimeoutModel j) { lock (Queue) { Queue.Remove(j); } }
/// <summary> /// Returns ture if this job exists in the timeout system, else false. /// </summary> /// <param name="j"></param> /// <returns></returns> public static bool JobExists(JobTimeoutModel j) { lock (Queue) { return(Queue.Contains(j)); } }