private async Task Async() { _lastLogger.Debug("Start monitor task").Write(); do { await Task.Delay(TimeSpan.FromSeconds(1)); var lastMsgTimeDelta = DateTime.Now - _lastMsgTime; if (lastMsgTimeDelta >= BatchTimeout && _messages.Count != 0) { ApplyContext( _lastLogger.Debug("Hit mq batch processing"), lastMsgTimeDelta ) .Write(); try { await PerformConsumingAsync(); } catch (Exception e) { ApplyContext( _lastLogger.Error("Mq batch processing error", e), lastMsgTimeDelta ) .Write(); } } else { ApplyContext( _lastLogger.Debug("Pass mq batch processing"), lastMsgTimeDelta ) .Write(); } } while (true); DslExpression ApplyContext(DslExpression dslExpression, TimeSpan lastMsgTimeDelta) { return(dslExpression .AndLabel("async-mq-batch-processing") .AndFactIs("last-msg-time", _lastMsgTime.ToString("T")) .AndFactIs("last-msg-delta", lastMsgTimeDelta.ToString("T")) .AndFactIs("queue", Queue) .AndFactIs("msg-count", _messages.Count)); } }
public DslExpression Debug(string message) { return(ApplyExtensions(_dsl.Debug(message))); }