Over a million developers have joined DZone.

Schedule a Job in Play With Akka

DZone's Guide to

Schedule a Job in Play With Akka

Follow along to see this hands-on approach to job scheduling in Scala using the Play framework.

· Java Zone ·
Free Resource

Java-based (JDBC) data connectivity to SaaS, NoSQL, and Big Data. Download Now.

Greetings to all!

In this blog, we will see how we can schedule a job after some time period in play using Scala. Before we get started, I'm assuming you all have a little knowledge of Akka, Play, and Scala.

So here, we start with an actor where we will write our job to be scheduled as follows:

import javax.inject.{Inject, Singleton}
import akka.actor.Actor
import play.api.Logger
import scala.concurrent.ExecutionContext
class JobSchedulerActor @Inject()(implicit ec: ExecutionContext) extends Actor {
    var c= 0
    override def receive: Receive = {
        case _ =>
        c = c+1
        Logger.info("Job Scheduled "+ c )
        //Here put your code for your job

Now, we will define the scheduler for the above job to execute at a certain duration:

class Scheduler @Inject() (val system: ActorSystem, @Named("<strong>JobSchedulerActor</strong>") val j<strong>obSchedulerActor</strong>: ActorRef)(implicit ec: ExecutionContext) {
    var actor = system.scheduler.schedule(
    0.seconds, 30.seconds,JobSchedulerActor, "schedule")

Now we need to bind the actor and scheduler:

import actor.SchedulerActor
import com.google.inject.AbstractModule
import play.api.Logger
import play.api.libs.concurrent.AkkaGuiceSupport
import scheduler.Scheduler

class BindModule extends AbstractModule with AkkaGuiceSupport {
    def configure() = {
        Logger.info("\nConfigurring Scheduler.")

Now we tell Play to start the actor after the scheduled time. We only need to write the following configuration inside application.conf :

play.modules.enabled += "modules.BindModule"

And with that, your scheduler will start scheduling your job after the specified duration once your server is up.

Connect any Java based application to your SaaS data.  Over 100+ Java-based data source connectors.

scheduler ,actor ,play ,java

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}