public virtual void Execute(IJobExecutionContext context)
        {
            using (ILoggingOperation log = _logger.NormalOperation().AddProperty("jobId", context.JobDetail.Key.Name))
            {
                try
                {
                    RemoteCall(context);
                    ProbeManager.Ask().AppCounter($"{GetType().Name}.completed").Increment();
                    _logger.Info($"job={context.JobDetail.Key.Name} executed");
                }
                catch (Exception e)
                {
                    if (context.RefireCount < Convert.ToInt32(RetryCount))
                    {
                        ProbeManager.Ask().AppCounter($"{GetType().Name}.error-refire").Increment();
                        _logger.Warn($"job={context.JobDetail.Key.Name}, refireCount={context.RefireCount}");
                        throw new JobExecutionException(e, true);
                    }
                    else
                    {
                        ProbeManager.Ask().AppCounter($"{GetType().Name}.error-definitive").Increment();
                        _logger.Error($"job={context.JobDetail.Key.Name}, refireCount={context.RefireCount}, params={JsonConvert.SerializeObject(context.MergedJobDataMap)}");

                        context.Scheduler.RescheduleJob(context.Trigger.Key, (ITrigger)context.Trigger.Clone());

                        context.Scheduler.PauseJob(context.JobDetail.Key);
                    }
                }
            }
        }
 public RemoteCallJobBase()
 {
     _logger = LogManager.GetLogger(GetType());
     ProbeManager.Ask().AppCounter($"{GetType().Name}.created").Increment();
 }