Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
aorwall committed Jan 15, 2013
1 parent f724d58 commit ee7cbee
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ LogServer-actorn finns under: [server/src/main/scala/se/callista/loganalyzer/ser
Använd följande kommando för att verifiera att LogServer tar emot LogMessage-objekt:
`sbt 'server/test-only se.callista.loganalyzer.server.LogServerSuite'`

[*Exempel på lösning*](https://github.com/callistaenterprise/akka-cadec-2013/blob/task1/server/src/main/scala/se/callista/loganalyzer/server/LogServer.scala)

### Start-scripts

#### Generera startscripts
Expand Down Expand Up @@ -53,6 +55,8 @@ LogAgent-actorn finns under: [agent/src/main/scala/se/callista/loganalyzer/agent
Använd följande kommando för att verifiera att LogAgent fungerar enligt kraven ovan:
`sbt 'agent/test-only se.callista.loganalyzer.agent.LogAgentSuite'`

[*Exempel på lösning*](https://github.com/callistaenterprise/akka-cadec-2013/blob/task1/agent/src/main/scala/se/callista/loganalyzer/agent/LogAgent.scala)

### Testa hela flödet

Kompilera koden med kommandot: `sbt compile`
Expand Down Expand Up @@ -80,6 +84,8 @@ För att se hur väl våra webbservrar fungerar vill vi sätta upp en dashboard
2. ClientError om HTTP-status är 400-499
3. ServerError om HTTP-status är över 500

[*Exempel på lösning*](https://github.com/callistaenterprise/akka-cadec-2013/blob/task2/server/src/main/scala/se/callista/loganalyzer/server/LogServer.scala)

### Uppdatera StatusCounter
1. Ta emot LogMessage objekt
2. Räkna upp med ett varje gång en logg kommer in
Expand All @@ -88,6 +94,8 @@ För att se hur väl våra webbservrar fungerar vill vi sätta upp en dashboard
Använd följande kommando för att verifiera att StatusCountern fungerar:
`sbt 'server/test-only se.callista.loganalyzer.server.StatusCounterSuite'`

[*Exempel på lösning*](https://github.com/callistaenterprise/akka-cadec-2013/blob/task3/server/src/main/scala/se/callista/loganalyzer/server/StatusCounter.scala)

### Testa hela flödet
Kompilera genom att köra kommandot: `sbt compile`

Expand All @@ -107,6 +115,8 @@ Vi kommer i detta steg spara ner alla logg-meddelanden till en databas. Då data
1. Skapa en DatabaseWorker-actor.
2. Forwarda alla logg-meddelanden till DatabaseWorker-actorn. Använd `actorReferens.forward([meddelande])` för att vidarebefordra meddelande och behålla referens till actorn som skickade meddelandet från början.

[*Exempel på lösning*](https://github.com/callistaenterprise/akka-cadec-2013/blob/task3/server/src/main/scala/se/callista/loganalyzer/server/LogServer.scala)

### Uppdatera DatabaseWorker
1. Ta emot LogMessage objekt
2. Spara logg-meddelanden(LogMessage) till databasen. `database.save([hostname], [löpnummer], [AccessLog])`
Expand All @@ -117,6 +127,8 @@ DatabaseWorker-actorn finns under: [server/src/main/scala/se/callista/loganalyze
Använd följande kommando för att verifiera att DatabaseWorkern fungerar som förväntat:
`sbt 'server/test-only se.callista.loganalyzer.server.DatabaseWorkerSuite'`

[*Exempel på lösning*](https://github.com/callistaenterprise/akka-cadec-2013/blob/task3/server/src/main/scala/se/callista/loganalyzer/server/DatabaseWorker.scala)

### Testa hela flödet
Kompilera om och starta server och agent igen.

Expand All @@ -133,6 +145,8 @@ override val supervisorStrategy = OneForOneStrategy() {
}
```

[*Exempel på lösning*](https://github.com/callistaenterprise/akka-cadec-2013/blob/task4/server/src/main/scala/se/callista/loganalyzer/server/LogServer.scala)

Om fel uppstår i databasen på serversidan eller om loggmeddelanden försvinner på väg till servern vill vi på agent-sidan ha möjlighet att skicka om dessa. Detta kan göras genom att inom en viss tidsperiod kontrollera om ett bekräftelsemeddelande (ConfirmationMessage) för ett loggmeddelande inkommit från servern. Om detta inte skett, skicka om loggmeddelandet med samma löpnummer. Vi vill att alla meddelanden ska skickas **minst** en gång ( *at-least-once* ) .

Tips på lösning:
Expand Down Expand Up @@ -161,6 +175,7 @@ map.foreach { case (key, value) => funktion(key, value) }
Använd följande kommando för att verifiera att LogAgent skickar om meddelanden inom fem sekunder:
`sbt 'agent/test-only se.callista.loganalyzer.agent.LogAgentResendSuite'`

[*Exempel på lösning*](https://github.com/callistaenterprise/akka-cadec-2013/blob/task4/agent/src/main/scala/se/callista/loganalyzer/agent/LogAgent.scala)

(Extra) Uppgift 5: Räkna inte omsändningar av logg-meddelanden
---------------------
Expand All @@ -170,6 +185,7 @@ När en skrivning till databasen fallerar och omsändning sker från LogAgenten
Använd följande kommando för att verifiera att StatusCountern nu inte räknar upp samma loggmeddelande två gånger:
`sbt 'server/test-only se.callista.loganalyzer.server.StatusCounterIdempotentSuite'`

[*Exempel på lösning*](https://github.com/callistaenterprise/akka-cadec-2013/blob/task5/server/src/main/scala/se/callista/loganalyzer/server/StatusCounter.scala)

---
*Tutorialen är skapad av Albert Örwall och Pär Wenåker för Cadec 2013 som arrangeras av [Callista Enterprise AB](http://callistaenterprise.se/).*

0 comments on commit ee7cbee

Please sign in to comment.