private void DoTask(TwitterAction action)
        {
            var random = new Random();
            //sleep a few random seconds before performing
            var sleepFor = random.Next(10000, 30000);
            _logger.InfoFormat("Sleeping for {0}ms", sleepFor);
            Thread.Sleep(sleepFor);

            switch (action.ActionType)
            {
                case TwitterActionType.Follow:
                    ExecuteWithRetries(() => Follow(action.Id), "Following " + action.Id);
                    break;
                case TwitterActionType.Retweet:
                    ExecuteWithRetries(() => Retweet(action.Id), "Retweeting " + action.Id);
                    break;
            }
        }
 private void EnqueueAction(TwitterAction action, string source)
 {
     lock (_queue)
     {
         _queue.Enqueue(action);
         _logger.InfoFormat("Enqueued handler {0} {1} (Source {2})", action.ActionType.ToString(), action.Id, source);
     }
 }