public async Task <ActionResult> Stop(int id) { try { await _semaphore.WaitAsync(); if (_sheduler.ScheduledRecurringMessage != null) { SheduleConfig configs = _sheduleConfig.Value; ISendEndpoint _sendEndpoint = await _sendEndpointProvider.GetSendEndpoint(new Uri($"rabbitmq://{configs.Host}/{configs.QuartzQueue}")); await _sendEndpoint.CancelScheduledRecurringSend(_sheduler.ScheduledRecurringMessage); await _sendEndpoint.CancelScheduledRecurringSend(_sheduler.ScheduledRecurringMessage2); _sheduler.ScheduledRecurringMessage = null; _sheduler.ScheduledRecurringMessage2 = null; } } finally { _semaphore.Release(); } return(RedirectToAction(nameof(Get))); }