Skip to content

Instantly share code, notes, and snippets.

@idursun
Last active January 19, 2016 18:30
Show Gist options
  • Save idursun/9a2ba8e7fef6927520d2 to your computer and use it in GitHub Desktop.
Save idursun/9a2ba8e7fef6927520d2 to your computer and use it in GitHub Desktop.
package actors
import akka.actor.{ActorLogging, Actor}
import parsers.EksiSozlukSiteParser
import persistence.PostgreSqlPersistence
import scala.concurrent.duration._
object TrackerActor {
case class TrackPage(page: Integer)
}
class TrackerActor extends Actor with EksiSozlukSiteParser with ActorLogging with PostgreSqlPersistence {
import TrackerActor._
import context.dispatcher
context.system.scheduler.schedule(0.seconds, 5.minutes, self, TrackPage(1))
override def receive: Receive = {
case TrackPage(page) =>
log.debug("fetching page {}", page)
val canContinue = parsePage(page) { rezalet =>
log.debug("{}", rezalet)
persist(rezalet)
}
if (canContinue)
self ! TrackPage(page + 1)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment