i suspect the issue is related to how you call 'context.system.shutdown()'.
Make sure it is called only after all your messages have been processed to
completion.  As written, it appears to be called after the first message is
handled. I'm no expert with actors, but I would guess the reason it
completes 12 messages is due to a race condition between the actor logic
(parallelism set to 12) and the shutdown.

On Jun 22, 2017 4:29 AM, "Abhishek G" <[email protected]> wrote:

Hi Akka Team,

I have 100 threads, need to process only 12 threads at a time not more than
that. After completion of these threads other 12 have to be processed and
so on but it's processing only first 12 set threads then it terminates
after that.
Here is my Logic:

class AkkaProcessing extends Actor {
    def receive = {
    case message: List[Any] =>
    var meterName = message(0)  // It Contains only 12 threads as a set, it
process them and terminates. Am unable to get remaining threads
     println("The Akka Meter is :" +meterName)
    val sqlContext = message(1).asInstanceOf[SQLContext]
    val FlagDF = message(2).asInstanceOf[DataFrame]

               {


                   All the business logic here

              }

           context.system.shutdown()
        }
      }
    }

object Processing {
def main(args: Array[String]) = {
    val rawBuff = new ArrayBuffer[Any]()
    val actorSystem = ActorSystem("ActorSystem") // Creating ActorSystem
    val actor =
actorSystem.actorOf(Props[AkkaProcessing].withRouter(RoundRobinPool(200)),
"my-Actor")
    implicit val executionContext = actorSystem.dispatchers.
lookup("akka.actor.my-dispatcher")

      for (i <- 0 until meter_list.length) {

        var meterName = meter_list(i)     // All 100 Meters here

        rawBuff.append(meterName, sqlContext, FlagDF)
        actor ! rawBuff.toList
       }
    }
  }




Apllication.conf

ActorSystem {
        akka {
            log-config-on-start = on
              log-dead-letters-during-shutdown = off

          actor {
              timeouts {
                  verySmallAskDuration = 5000
            }

            # Frequency with which stopping actors are prodded in case they
had to be
            # removed from their parents
            reaper-interval = 7s

            provider = "akka.actor.LocalActorRefProvider"
            my-dispatcher {
                  type = Dispatcher
                  executor = "fork-join-executor"
              fork-join-executor {
                       # Throughput defines the maximum number of messages
to be
                      # processed per actor before the thread jumps to the
next actor.
                    # Set to 1 for as fair as possible.
                      throughput = 1000
                     # Min number of threads to cap factor-based
parallelism number to
                      parallelism-min = 2
                      # Parallelism (threads) ... ceil(available processors
* factor)
                      parallelism-factor = 3
                      # Max number of threads to cap factor-based
parallelism number to
                     parallelism-max = 12
                      }
                  }
                }
             }

           akka.actor.deployment {
                /my-Actor {
                  dispatcher = my-dispatcher

        }
      }
    }

 Any help highly appreciated


Thanks
Abhishek

-- 
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/
current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups
"Akka User List" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to