programmiersportgruppe / akre Goto Github PK
View Code? Open in Web Editor NEWA Redis client for Scala, implemented in Akka
License: MIT License
A Redis client for Scala, implemented in Akka
License: MIT License
Currently something like the following is necessary to use a RedisClient
:
val actorSystem = ActorSystem("akre-example", ConfigFactory.parseString(
"""
akka {
actor.deployment {
/akre-redis-pool {
dispatcher = akre-coordinator-dispatcher
}
}
}
akre-coordinator-dispatcher {
mailbox-type = org.programmiersportgruppe.redis.client.ResilientPoolMailbox
}
"""))
This is inconvenient, and breaks the actorlessness of the RedisClient
interface. The mailbox should get wired up on its own, and possibly also the dispatcher type.
There is a RedisClientAcceptanceTest
case that checks that the RedisClient
will "recover from the server going down nicely". It does this by sending a SHUTDOWN
command to the server, then restarting the server, and immediately sending a SET
command. The test can randomly fail with a 3-second AskTimeoutException
when the SET
command is sent before the ResilientPool
gets the Terminated
message informing it that the connection actor has died. The pool sends the command to the connection actor, but that actor dies before it processes the message. So the message becomes a dead letter and disappears into the ether, the pool receives the Terminated
message and creates a new RedisConnectionActor
, and the ask
construct in RedisClient.execute
eventually times out.
Since the actor system as a whole actually has the information that the SET
command hasn't been sent to the server, it would be very nice if we could either resend it or at least fail quickly.
Currently very few commands are supported. We should support most commands.
Investigate hosting on GitHub using sbt-site and sbt-ghpages.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.