Resque.Worker.Work C# (CSharp) Method

Work() public method

public Work ( int interval = 5 ) : void
interval int
return void
        public void Work(int interval = 5)
        {
            try
            {
                Startup();
                while (true)
                {
                    if (Shutdown)
                        break;
                    if (Pause)
                    {
                        Thread.Sleep(TimeSpan.FromSeconds(5));
                        continue;
                    }

                    var job = Reserve();
                    if (job != null)
                    {
                        SetWorkingOn(job);

                        System.Threading.Tasks.Task.Factory.StartNew(() => Process(job)).Wait();

                        DoneWorking();
                    }
                    else
                    {
                        if (interval == 0)
                            break;
                        Thread.Sleep(TimeSpan.FromSeconds(interval));
                    }
                }
            }
            finally
            {
                UnregisterWorker();
            }
        }

Usage Example

Example #1
0
 public System.Threading.Tasks.Task WorkAsync(params string[] queues)
 {
     var worker = new Worker(JobCreator, FailureService, Client, queues);
     Workers.Add(worker);
     return System.Threading.Tasks.Task.Factory.StartNew(() => worker.Work());
 }
All Usage Examples Of Resque.Worker::Work