Ejemplo n.º 1
0
        public override void Run()
        {
            // This is a sample worker implementation. Replace with your logic.
            Trace.WriteLine("SuperReducer entry point called", "Information");

            var queueFrases = new QueueFrases();
            var queuePalavras = new QueuePalavras();

            while (true)
            {
                var mensagem = queueFrases.ProximaFraseParaProcessar();
                if (mensagem != null)
                {
                    var fraseLetra = mensagem.AsString.Split(new[] {"@"}, StringSplitOptions.RemoveEmptyEntries);
                    var frase = fraseLetra[FRASE_INDEX];
                    var letra = fraseLetra[LETRA_INDEX];

                    var palavras = frase.Split(new[] {" "}, StringSplitOptions.RemoveEmptyEntries);
                    var identificador = fraseLetra[IDENTIFICADOR_INDEX];

                    foreach (var palavra in palavras)
                    {
                        queuePalavras.NovaPalavraParaProcessar(palavra, letra, identificador);
                    }

                    queueFrases.FraseProcessada(mensagem);
                }
                else
                {
                    Thread.Sleep(30000);
                }

                Trace.WriteLine("Working", "Information");
            }
        }
Ejemplo n.º 2
0
        public override void Run()
        {
            Trace.WriteLine("SuperProcessador entry point called", "Information");

            var queuePalavras = new QueuePalavras();
            var tableResultado = new TableResultado();

            while (true)
            {
                var mensagem = queuePalavras.ProximaPalavraParaProcessar();
                if (mensagem != null)
                {
                    var campos = mensagem.AsString.Split(new[] {"@"}, StringSplitOptions.RemoveEmptyEntries);
                    var palavra = campos[0];
                    var letraParaContar = char.Parse(campos[1].Trim(new []{' '}));
                    var identificador = campos[2];

                    var qtdLetras = 0;
                    foreach (char letra in palavra)
                    {
                        if (letra.Equals(letraParaContar))
                            qtdLetras++;
                    }

                    tableResultado.ArmazenarResultado(identificador,qtdLetras);
                    queuePalavras.PalavraProcessada(mensagem);

                    Thread.Sleep(1000);
                }
                else
                {
                    Thread.Sleep(30000);
                }

                Trace.WriteLine("Working", "Information");
            }
        }