Exemplo n.º 1
0
        public QueueJobDetailsResult CheckQueueJobDetails(string typeName)
        {
            var type = AppDomain.CurrentDomain.GetAssemblies().ToList()
                .SelectMany(s => s.GetTypes())
                .FirstOrDefault(i=>i.FullName == typeName);
            if(type == null)
            {
                throw new Exception("Unrecognized type " + typeName);
            }
            var returnValue = new QueueJobDetailsResult
            {
                QueueDataType = type
            };

            DateTime tenMinuetsAgo = DateTime.UtcNow.AddMinutes(-10);
            returnValue.ErrorItems = _documentSession.Advanced.LuceneQuery<object>()
                        .WhereEquals("@metadata.Raven-Entity-Name", _documentSession.Advanced.DocumentStore.Conventions.GetTypeTagName(type))
                        .AndAlso().WhereEquals("Status", EnumJobStatus.Error)
                        .WaitForNonStaleResultsAsOfNow(TimeSpan.FromSeconds(120))
                        .Select(i=>CreateQueueJobDetailsResultItem(i)).ToList();
            returnValue.InProcessItems = _documentSession.Advanced.LuceneQuery<object>()
                        .WhereEquals("@metadata.Raven-Entity-Name", _documentSession.Advanced.DocumentStore.Conventions.GetTypeTagName(type))
                        .AndAlso().WhereEquals("Status", EnumJobStatus.InProcess)
                        .WaitForNonStaleResultsAsOfNow(TimeSpan.FromSeconds(120))
                        .Select(i=>CreateQueueJobDetailsResultItem(i)).ToList();
            returnValue.SuspectInProcessItem = _documentSession.Advanced.LuceneQuery<object>()
                        .WhereEquals("@metadata.Raven-Entity-Name", _documentSession.Advanced.DocumentStore.Conventions.GetTypeTagName(type))
                        .AndAlso().WhereEquals("Status", EnumJobStatus.Error)
                        .AndAlso().WhereLessThan("QueuedDateTimeUtc", tenMinuetsAgo)
                        .WaitForNonStaleResultsAsOfNow(TimeSpan.FromSeconds(120))
                        .Select(i=>CreateQueueJobDetailsResultItem(i)).ToList();

            return returnValue;
        }
Exemplo n.º 2
0
        public QueueJobDetailsResult CheckQueueJobDetails(string typeName)
        {
            var type = AppDomain.CurrentDomain.GetAssemblies().ToList()
                       .SelectMany(s => s.GetTypes())
                       .FirstOrDefault(i => i.FullName == typeName);

            if (type == null)
            {
                throw new Exception("Unrecognized type " + typeName);
            }
            var returnValue = new QueueJobDetailsResult
            {
                QueueDataType = type
            };

            DateTime tenMinuetsAgo = DateTime.UtcNow.AddMinutes(-10);

            returnValue.ErrorItems = _documentSession.Advanced.LuceneQuery <object>()
                                     .WhereEquals("@metadata.Raven-Entity-Name", _documentSession.Advanced.DocumentStore.Conventions.GetTypeTagName(type))
                                     .AndAlso().WhereEquals("Status", EnumJobStatus.Error)
                                     .WaitForNonStaleResultsAsOfNow(TimeSpan.FromSeconds(120))
                                     .Select(i => CreateQueueJobDetailsResultItem(i)).ToList();
            returnValue.InProcessItems = _documentSession.Advanced.LuceneQuery <object>()
                                         .WhereEquals("@metadata.Raven-Entity-Name", _documentSession.Advanced.DocumentStore.Conventions.GetTypeTagName(type))
                                         .AndAlso().WhereEquals("Status", EnumJobStatus.InProcess)
                                         .WaitForNonStaleResultsAsOfNow(TimeSpan.FromSeconds(120))
                                         .Select(i => CreateQueueJobDetailsResultItem(i)).ToList();
            returnValue.SuspectInProcessItem = _documentSession.Advanced.LuceneQuery <object>()
                                               .WhereEquals("@metadata.Raven-Entity-Name", _documentSession.Advanced.DocumentStore.Conventions.GetTypeTagName(type))
                                               .AndAlso().WhereEquals("Status", EnumJobStatus.Error)
                                               .AndAlso().WhereLessThan("QueuedDateTimeUtc", tenMinuetsAgo)
                                               .WaitForNonStaleResultsAsOfNow(TimeSpan.FromSeconds(120))
                                               .Select(i => CreateQueueJobDetailsResultItem(i)).ToList();

            return(returnValue);
        }