Skip to content

Commit

Permalink
Adding a delay option to the send method. This allows a message to re…
Browse files Browse the repository at this point in the history
…main invisable for some time ( max of 15 minutes ), which is helpful inlots of use cases
mbseid committed Jun 3, 2015
1 parent a801705 commit c6b8a58
Showing 3 changed files with 10 additions and 4 deletions.
2 changes: 1 addition & 1 deletion build.sbt
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@ organization := "com.kifi"

name := "franz"

version := "0.3.11"
version := "0.3.12-SNAPSHOT"

crossScalaVersions := Seq("2.10.4", "2.11.5")

2 changes: 1 addition & 1 deletion src/main/scala/com/kifi/franz/FakeSQSQueue.scala
Original file line number Diff line number Diff line change
@@ -17,7 +17,7 @@ trait FakeSQSQueue[T] extends SQSQueue[T] {

override def initQueueUrl(): String = ""

override def send(msg: T, messageAttributes: Option[Map[String,String]]): Future[MessageId] = Future.successful(MessageId(""))
override def send(msg: T, messageAttributes: Option[Map[String,String]], delay: Option[Int]): Future[MessageId] = Future.successful(MessageId(""))

override protected def nextBatchRequestWithLock(maxBatchSize: Int, lockTimeout: FiniteDuration): Future[Seq[SQSMessage[T]]] = Future.successful(Seq.empty)

10 changes: 8 additions & 2 deletions src/main/scala/com/kifi/franz/SQSQueue.scala
Original file line number Diff line number Diff line change
@@ -61,11 +61,17 @@ trait SQSQueue[T]{
send (msg, None)
}

def send(msg: T, messageAttributes: Option[Map[String, String]] = None): Future[MessageId] = {
def send(msg: T, delay:Int): Future[MessageId] = {
send (msg, None, Some(delay))
}

def send(msg: T, messageAttributes: Option[Map[String, String]] = None, delay:Option[Int] = None): Future[MessageId] = {
val request = new SendMessageRequest
request.setMessageBody(msg)
request.setQueueUrl(queueUrl)

delay.map{ d =>
request.setDelaySeconds(d)
}
// foreach on an Option unfolds Some, and skips if None
messageAttributes.foreach { ma =>
ma.foreach { case (k,v) =>

0 comments on commit c6b8a58

Please sign in to comment.