Open huixiangufl opened 9 years ago
package common import java.util.Date import scala.collection.mutable.ArrayBuffer
case class viewHomeTimeline(user_id: Long) case class viewUserTimeline(user_id: Long) case class getTweet(t: Tweet) case class displayUserTimeLine(userHomeTimeLine: ArrayBuffer[String]) case class Tweet(user_id: Long, text: String, time_stamp: Date, var ref_id: String)
package twitterclient
import akka.util.Timeout import scala.concurrent.duration. import scala.concurrent.ExecutionContext.Implicits.global import akka.actor.{ ActorSystem, Actor, Props, ActorRef } import akka.actor. import scala.collection.mutable.ArrayBuffer import common. import java.security.MessageDigest import java.util.Formatter import java.util.Calendar import java.text.SimpleDateFormat import java.util.Date import scala.util.Random import scala.util.control.Breaks. import scala.concurrent.Await
object twitterclient {
sealed trait Message case object SendTweet extends Message case object ViewTweet extends Message
val numUsers: Int = 1000000
def getHash(s: String): String = { val sha = MessageDigest.getInstance("SHA-256") sha.digest(s.getBytes) .foldLeft("")((s: String, b: Byte) => s + Character.forDigit((b & 0xf0) >> 4, 16) + Character.forDigit(b & 0x0f, 16)) }
def dateToString(current: Date): String = { val formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS") val s: String = formatter.format(current) return s }
def getCurrentTime(): Date = { Calendar.getInstance().getTime() }
class clientActor(twitterServer: ActorSelection) extends Actor {
}
def randBehavior(prob: ArrayBuffer[Int], N: Int): Int = { var randProb = Random.nextInt(N) var behavior = prob.size breakable { for (i <- 0 until prob.size) { if (prob(i) >= randProb) { behavior = i break } } }
}
def main(args: Array[String]) { implicit val system = ActorSystem("UserSystem") val twitterServer = system.actorSelection("akka.tcp://TwitterSystem@10.227.56.142:9000/user/boss") var clientArray = ArrayBuffer[ActorRef]() var counter = 0 while (counter < numUsers) { val client = system.actorOf(Props(classOf[clientActor], twitterServer), "client" + counter.toString) clientArray.append(client) counter += 1 if(counter % 10000 == 0) println("create " + counter) } println("create finished") /* var prob: ArrayBuffer[Int] = new ArrayBuffer // prob.append(100) // prob.append(1100) // prob.append(5600) // prob.append(10000)
}
}