2012-10-29 14:25:21 来源:中云
通过Windows Azure,你可以使用一个虚拟机来处理计算密集型任务。前面给大家介绍了云平台上如何创建一个执行计算密集型任务的Java应用程序,本文将给您介绍一下如何创建一个监视计算密集型任务进展情况的Java应用程序。
1. 在你的开发机器上,创建一个Java控制台应用程序,使用的示例代码在本小节的末尾。在本教程中,我们将使用TSPClient.Java作为Java文件名。和之前一样,分别使用你的服务总线命名空间、 默认发行人和默认密钥值,修改your_service_bus_namespace、 your_service_bus_owner、 以及 your_service_bus_key 等占位符。
2. 导出应用程序到一个可执行的JAR,并打包所需的库到生成的JAR.在本教程中,我们将使用TSPClient.jar生成的JAR名。
// TSPClient.Java
import Java.util.Date;
import Java.text.DateFormat;
import Java.text.SimpleDateFormat;
import com.microsoft.WindowsAzure.services.serviceBus.*;
import com.microsoft.WindowsAzure.services.serviceBus.models.*;
import com.microsoft.WindowsAzure.services.core.*;
public class TSPClient
{
public static void main(String[] args)
{
try
{
DateFormat dateFormat = new SimpleDateFormat(“MM/dd/yyyy HH:mm:ss”);
Date date = new Date();
System.out.println(“Starting at ” + dateFormat.format(date) + “.”);
String namespace = “your_service_bus_namespace”;
String issuer = “your_service_bus_owner”;
String key = “your_service_bus_key”;
Configuration config;
config = ServiceBusConfiguration.configureWithWrapAuthentication(
namespace, issuer, key);
ServiceBusContract service = ServiceBusService.create(config);
BrokeredMessage message;
int waitMinutes = 3; // Use as the default, if no value is specified at command line.
if (args.length != 0)
{
waitMinutes = Integer.valueOf(args[0]);
}
String waitString;
waitString = (waitMinutes == 1) ? “minute.” : waitMinutes + “ minutes.”;
// This queue must have previously been created.
service.getQueue(“TSPQueue”);
int numRead;
String s = null;
while (true)
{
ReceiveQueueMessageResult resultQM = service.receiveQueueMessage(“TSPQueue”);
message = resultQM.getValue();
if (null != message && null != message.getMessageId())
{
// Display the queue message.
byte[] b = new byte[200];
System.out.print(“From queue: ”);
s = null;
numRead = message.getBody()。read(b);
while (-1 != numRead)
{
s = new String(b);
ss = s.trim();
System.out.print(s);
numRead = message.getBody()。read(b);
}
System.out.println();
if (s.compareTo(“Complete”) == 0)
{
// No more processing to occur.
date = new Date();
System.out.println(“Finished at ” + dateFormat.format(date) + “.”);
break;
}
}
else
{
// The queue is empty.
System.out.println(“Queue is empty. Sleeping for another ” + waitString);
Thread.sleep(60000 * waitMinutes);
}
}
}
catch (ServiceException se)
{
System.out.println(se.getMessage());
se.printStackTrace();
System.exit(-1);
}
catch (Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
System.exit(-1);
}
}
}
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。