Skip to content

Commit 6d493d3

Browse files
committed
update worker and include variables
1 parent 3aee781 commit 6d493d3

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

payment/src/main/scala/org/camunda/worker/akka/sample/payment/Main.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ object Main extends App {
3434
val worker = system.actorOf(PaymentWorker.props(), name = "payment-worker")
3535

3636
// start polling
37-
val pollActor = system.actorOf(PollActor.props(hostAddress = host, maxTasks = 5, waitTime= 100, lockTime = 600), name = "poller")
38-
pollActor ! Poll(topicName = "orderProcess:payment", worker)
37+
val pollActor = system.actorOf(PollActor.props(hostAddress = host, maxTasks = 5, waitTime= 100, lockTime = 600))
38+
pollActor ! Poll(topicName = "orderProcess:payment", worker, variableNames = List("orderId"))
3939

4040
// waiting for end
4141
val input = readLine()

payment/src/main/scala/org/camunda/worker/akka/sample/payment/PaymentWorker.scala

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@ import org.camunda.worker.akka.client.LockedTask
44
import org.camunda.worker.akka.PollActor._
55
import akka.routing._
66
import akka.actor.Props
7-
import scala.concurrent._
8-
import ExecutionContext.Implicits.global
97
import org.camunda.worker.akka.client.VariableValue
10-
import org.camunda.worker.akka.client.VariableValue.anyToVariableValue
118
import org.camunda.worker.akka.Worker
129
import scala.concurrent.duration._
1310
import scala.util.Random
@@ -17,14 +14,19 @@ import scala.util.Random
1714
*/
1815
class PaymentWorker(delay: Duration) extends Worker {
1916

20-
def work(task: LockedTask): Future[Map[String, VariableValue]] = Future {
17+
def work(task: LockedTask): Map[String, VariableValue] = {
2118

22-
val payment = calculatePayment
19+
val orderId = task.variables.get("orderId") match {
20+
case Some(variableValue) => variableValue.asValue[String]
21+
case None => "" // throw IllegalArgumentException("no order id available")
22+
}
2323

24-
Map("payment" -> payment)
24+
val payment = calculatePayment(orderId)
25+
26+
Map(s"payment-$orderId" -> payment)
2527
}
2628

27-
private def calculatePayment = {
29+
private def calculatePayment(orderId: String) = {
2830
// simulate calculation
2931
java.lang.Thread.sleep(delay.toMillis)
3032
// return result
@@ -35,7 +37,7 @@ class PaymentWorker(delay: Duration) extends Worker {
3537

3638
object PaymentWorker {
3739

38-
def props(delay: Duration = 250 millis): Props =
40+
def props(delay: Duration = 100 millis): Props =
3941
Props(new PaymentWorker(delay))
4042

4143
}

0 commit comments

Comments
 (0)