com.devebot.opflow.examples.OpflowRpcExampleWorker Maven / Gradle / Ivy
package com.devebot.opflow.examples;
import java.util.HashMap;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.io.IOException;
import com.devebot.opflow.OpflowMessage;
import com.devebot.opflow.OpflowRpcWorker;
import com.devebot.opflow.OpflowRpcListener;
import com.devebot.opflow.OpflowRpcResponse;
public class OpflowRpcExampleWorker {
public static void main(String[] argv) throws Exception {
final Gson gson = new Gson();
final JsonParser jsonParser = new JsonParser();
final HashMap flowParams = new HashMap();
flowParams.put("uri", "amqp://master:[email protected]?frameMax=0x1000");
flowParams.put("operatorName", "tdd-opflow-queue");
flowParams.put("responseName", "tdd-opflow-feedback");
final OpflowRpcWorker rpc = new OpflowRpcWorker(flowParams);
rpc.process(new OpflowRpcListener() {
@Override
public Boolean processMessage(OpflowMessage message, OpflowRpcResponse response) throws IOException {
JsonObject jsonObject = (JsonObject)jsonParser.parse(message.getContentAsString());
System.out.println("[+] ExampleWorker1 received: '" + jsonObject.toString() + "'");
response.emitStarted();
int number = Integer.parseInt(jsonObject.get("number").toString());
FibonacciGenerator fibonacci = new FibonacciGenerator(number);
while(fibonacci.next()) {
FibonacciGenerator.Result r = fibonacci.result();
response.emitProgress(r.getStep(), r.getNumber(), null);
}
String result = gson.toJson(fibonacci.result());
System.out.println("[-] ExampleWorker1 finished with: '" + result + "'");
response.emitCompleted(result);
return null;
}
});
rpc.process(new OpflowRpcListener() {
@Override
public Boolean processMessage(OpflowMessage message, OpflowRpcResponse response) throws IOException {
JsonObject jsonObject = (JsonObject)jsonParser.parse(message.getContentAsString());
System.out.println("[+] ExampleWorker2 received: '" + jsonObject.toString() + "'");
response.emitStarted();
int number = Integer.parseInt(jsonObject.get("number").toString());
FibonacciGenerator fibonacci = new FibonacciGenerator(number);
while(fibonacci.next()) {
FibonacciGenerator.Result r = fibonacci.result();
response.emitProgress(r.getStep(), r.getNumber(), null);
}
String result = gson.toJson(fibonacci.result());
System.out.println("[-] ExampleWorker2 finished with: '" + result + "'");
response.emitCompleted(result);
return null;
}
});
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy