Пример #1
0
 public void PutVkGroupToQueue(GroupQueueItem groupQueueItem)
 {
     using (ICommandSender commandSender = Factory.GetInstance <ICommandSender>().Open("GroupJobQueue"))
     {
         commandSender.SendCommand(groupQueueItem);
     }
 }
        private IEnumerable<GroupQueueItem> GetExistingQueueItems()
        {
            IList<GroupQueueItem> items = new List<GroupQueueItem>();
            java.util.List jobQueueItems = Client.getGroupJobQueueItems(this.jmxConfiguration.AmqJmxUrl, this.jmxConfiguration.BrokerJmxName, "GroupJobQueue");

            for (int i = 0; i < jobQueueItems.size(); i++)
            {
                var queueItem = jobQueueItems.get(i) as string;

                if (queueItem != null)
                {
                    var boxedGroupId = GroupRegex.Match(queueItem).Groups[1].Value;
                    var item = new GroupQueueItem(int.Parse(boxedGroupId));
                    items.Add(item);
                }
            }

            return items;
        }
Пример #3
0
        private void ProcessSpecificGroupFeeds(FeedProcessingConfig processingConfig)
        {
            using (ICommandReceiver groupReceiver = Factory.GetInstance <ICommandReceiver>().Open(processingConfig.GroupQueueId))
            {
                while (true)
                {
                    GroupQueueItem commandMessage = null;

                    try
                    {
                        commandMessage = groupReceiver.GetCommand <GroupQueueItem>();

                        if (commandMessage == null)
                        {
                            this.log.Error("No groups found to process. Processing stopped.");
                            return;
                        }

                        this.ProcessGroup(commandMessage.VkGroupId);
                    }
                    catch (Exception exc)
                    {
                        this.log.ErrorFormat("Exception is occured while processing a group Id = {0}: {1}", commandMessage != null ? commandMessage.VkGroupId : 0, exc.ToString());
                        return;
                    }
                    finally
                    {
                        if (commandMessage != null)
                        {
                            commandMessage.MarkAsCompleted();

                            using (ICommandSender groupSender = Factory.GetInstance <ICommandSender>().Open(processingConfig.GroupQueueId))
                            {
                                groupSender.SendCommand(new GroupQueueItem(commandMessage.VkGroupId));
                            }
                        }
                    }
                }
            }
        }