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; }
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)); } } } } } }