public void Cleanup() { var tmp = _queue1; _queue1 = _queue2; _queue2 = tmp; // shared aggregator is cleared, so messages with same key can be sent next frame _queue2.Cleanup(); }
public async Task Execute(IJobExecutionContext context) { _logger.LogInformation("Queue cleanup job run at: {Timestamp}", DateTime.UtcNow); var jobDataMap = context.JobDetail.JobDataMap; var queueName = jobDataMap.GetString(JobDataKeys.QueueName); var cleanUpBatchSize = jobDataMap.GetInt(JobDataKeys.CleanUpBatchSize); try { await _workItemQueue.Cleanup(cleanUpBatchSize); } catch (Exception exception) { _logger.LogError("An error occured while Cleaning up queue '{Queuename}'. Exception is: {Exception}", queueName, exception); } }