Esempio n. 1
0
        /// <summary>
        /// Converts the result to the generic result object and calls the abstract method
        /// to process the data
        /// </summary>
        public void ProcessResult(IJobInput jobInput, string jobResultString)
        {
            var output = JobObjectSerializer.Deserialize <TOut>(jobResultString);

            ProcessResult((TIn)jobInput, output);
            Interlocked.Decrement(ref _jobCount);
        }
Esempio n. 2
0
        /// <summary>
        /// Handler when the enqueue job is fired
        /// </summary>
        private void OnEnqueueJob(IJobInput jobInput, object additionalData)
        {
            var handler = _enqueueJobEventHandler;

            if (handler != null)
            {
                handler(jobInput, additionalData);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Converts the result to the generic result object and calls the abstract method
        /// to process the data
        /// </summary>
        public void ProcessResult(IJobInput jobInput, string jobResultString, object additionalData)
        {
            var output = JobObjectSerializer.Deserialize <TOut>(jobResultString);

            ProcessResult((TIn)jobInput, output, additionalData);
            Interlocked.Decrement(ref _jobCount);
            // Finish if no more jobs are pending
            if (Interlocked.Read(ref _jobCount) == 0)
            {
                IsFinished = true;
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Enqueues the given job
        /// </summary>
        private void EnqueueJob(IJobInput jobInput, object additionalData = null)
        {
            var jobWrapper = new JobWrapper
            {
                Id             = Guid.NewGuid(),
                HandlerId      = Id,
                JobInput       = jobInput,
                EnqueueTime    = DateTime.Now,
                AdditionalData = additionalData
            };

            _availableJobs.Enqueue(jobWrapper);
        }