Package edu.iit.cs553

Source Code of edu.iit.cs553.Dispatcher

package edu.iit.cs553;

import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.amazonaws.auth.ClasspathPropertiesFileCredentialsProvider;
import com.amazonaws.services.sqs.AmazonSQSClient;
import com.amazonaws.services.sqs.model.SendMessageRequest;

public class Dispatcher {

  private AmazonSQSClient sqsClient;

  public Dispatcher()
  {
    this.sqsClient = new AmazonSQSClient(new ClasspathPropertiesFileCredentialsProvider());
    sqsClient.setEndpoint("sqs.us-west-2.amazonaws.com");
  }

  public void sendTasksToSQSQueue(List<Map<Integer, Long>> workload)
  {
    int i = 1;
    for (Map<Integer, Long> task : workload)
    {
      System.out.println("Sending task #" + i + " to the SQS queue.");
      sendTaskToSQSQueue(task);
      i++;
    }
  }

  private void sendTaskToSQSQueue(Map<Integer, Long> task)
  {
    String serializedTask = serializeTask(task);
    List<String> queuesUrls = sqsClient.listQueues().getQueueUrls();
    String queueUrl = queuesUrls.get(0);
    sqsClient.sendMessage(new SendMessageRequest(queueUrl, serializedTask));
  }

  private String serializeTask(Map<Integer, Long> task)
  {
    Set<Integer> keySet = task.keySet();
    Iterator<Integer> iterator = keySet.iterator();
    Integer taskId = iterator.next();
    long sleepDuration = task.get(taskId);
    String serializedTask = taskId + " " + sleepDuration;
    return serializedTask;
  }
}
TOP

Related Classes of edu.iit.cs553.Dispatcher

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.