Esempio n. 1
0
        public override void Run(NullJobConfiguration configuration)
        {
            _eventReporter.Info("Starting GCFlushJob.Run");
            var existingMemory = GC.GetTotalMemory(false);

            _eventReporter.Info("GCFlushJob: existing memory: " + existingMemory.ToString());
            GC.Collect();
            GC.WaitForPendingFinalizers();
            var afterMemory = GC.GetTotalMemory(true);

            _eventReporter.Info("GCFlushJob: memory after collection: " + afterMemory.ToString());
            _eventReporter.Info("Done GCFlushJob.Run");
        }
 public override void Run(ConfigType configuration)
 {
     _eventReporter.Trace(this.GetType().Name + ": job run started");
     if (_singletonJob)
     {
         lock (typeof(EmailSenderJob))
         {
             if (_isRunning)
             {
                 _eventReporter.Info("EmailSenderJob already running");
                 return;
             }
             else
             {
                 _isRunning = true;
             }
         }
     }
     try
     {
         bool done              = false;
         int  counter           = 0;
         int  maxItemsToProcess = this.GetMaxItemsToProcess(configuration);
         while (!done)
         {
             if (counter > maxItemsToProcess)
             {
                 done = true;
             }
             JobDataType jobData = this.GetNextItemToProcess(configuration);
             if (jobData == null)
             {
                 done = true;
                 _eventReporter.Trace(this.GetType().Name + ": job run done");
             }
             else
             {
                 try
                 {
                     _eventReporter.InfoForObject(this.GetType().Name + ": processing item", jobData);
                     this.ProcessItem(configuration, jobData);
                     this.MarkItemSuccessful(jobData);
                     _eventReporter.InfoForObject(this.GetType().Name + ": item done", jobData);
                 }
                 catch (Exception err)
                 {
                     this.MarkItemFailed(jobData, err);
                     _eventReporter.ExceptionForObject(err, jobData);
                 }
             }
         }
     }
     catch (Exception err)
     {
         _eventReporter.Exception(err);
     }
     finally
     {
         _isRunning = false;
     }
 }