Windows Azure入门教学系列 (三):创建第一个Worker Role程序

简介: 在开始本教学之前,请确保你从Windows Azure 平台下载下载并安装了最新的Windows Azure开发工具。本教学使用Visual Studio 2010作为开发工具。 步骤一:创建解决方案和项目 以管理员权限启动Visual Studio 2010,并且新建一个Windows Azure Project项目。

在开始本教学之前,请确保你从Windows Azure 平台下载下载并安装了最新的Windows Azure开发工具。本教学使用Visual Studio 2010作为开发工具。

步骤一:创建解决方案和项目

以管理员权限启动Visual Studio 2010,并且新建一个Windows Azure Project项目。

在弹出窗口出现后,按照下图所示,分别点击Worker Role,“>”按钮。该步骤会在右边窗口中生成一个新的Worker Role项。当你把鼠标移动至该Worker Role项之上时,会出现两个图标。点击左边的铅笔图标,你就可以修改Worker Role的名字;点击右边的叉形图标则可以移除该Role。决定了Role的种类,数量,以及名字之后,点击OK以创建解决方案。

步骤二:观察并分析生成的项目

项目结构如下图所示:

 

其中自动被设置成启动项目的是一个Cloud Service项目,你可以通过蓝色圆球图标来识别一个Cloud Service项目。单纯的一个Cloud Service项目只是一个Role的载体,针对每个Role,Visual Studio也会为你创建一个对应的项目,例如,为Worker Role生成的就是一个Class Library项目。无论何时,请确保Cloud Service项目是启动项目。

打开WorkerRole.cs文件,并且观察WorkerRole类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
public class WorkerRole : RoleEntryPoint
  
{
  
     public override void Run()
  
     {
  
         // This is a sample worker implementation. Replace with your logic.
  
         Trace.WriteLine( "SimpleWorkerRole entry point called" , "Information" );
  
   
  
         while ( true )
  
         {
  
             Thread.Sleep(10000);
  
             Trace.WriteLine( "Working" , "Information" );
  
         }
  
     }
  
   
  
     public override bool OnStart()
  
     {
  
         // Set the maximum number of concurrent connections
  
         ServicePointManager.DefaultConnectionLimit = 12;
  
   
  
         // For information on handling configuration changes
  
         // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.
  
   
  
         return base .OnStart();
  
     }
  
}

 

 

每个Worker Role都包含一个WorkerRole类,作为程序的入口点,类似于Console项目中的Program类。这个类必须继承自RoleEntryPoint,并且必须被命名为WorkerRole。

WorkerRole.OnStart方法可以被类比成Console程序中的Main方法,它会在一个Role启动时被调用,通常被用于做一些初始化工作。默认生成的代码为你初始化了诊断(Diagnostics)以及配置相关的代码。

WorkerRole.Run方法会在一个Worker Role初始化完毕,开始运行时被调用。一旦Run方法被跳出,一个Worker Role就会被终止(你可以重写OnStop方法来做一些善后工作,这个方法并没有被自动生成)。

通常Worker Role被用于批量处理任务,所以自动生成的代码的控制逻辑中包含了一个无限循环,每个循环用于处理单个任务,在处理之前当前线程会睡上10秒。请注意你并不一定要跟着自动生成的控制逻辑走,你完全可以修改生成的代码,来撰写你自己的控制逻辑。例如,你也许会创建一个定时器,每隔一定时间来执行一个任务。

本文假设你并未修改自动生成的代码,自动生成的代码执行的任务就是每隔10秒纪录一条Trace信息。

步骤三:运行程序

现在我们已经可以在Windows Azure模拟器中运行这个Worker Role程序了。在第一篇教学中,我们已经让大家认识了Windows Azure模拟器,在今后的文章中还会有更详细的说明,这里省略相关内容。

按下F5开始调试程序,在任务栏中找到Windows Azure模拟器的图标,右键点击该图标,点击Show Compute Emulator UI打开UI界面。

项目启动后,每隔10秒,你都会看到一句Information: Working的消息,这就说明我们的Worker Role中在顺利运行中:

请注意发布之后观察Trace信息的方式和在Windows Azure模拟器中是不一样的。有关详细信息,我们会在今后的文章中说明。

目录
相关文章
|
1天前
|
消息中间件 编译器 API
Windows窗口程序
Windows窗口程序
|
1天前
|
Windows
实现Windows程序的数据更新
实现Windows程序的数据更新
13 0
|
1天前
|
Windows
构建布局良好的Windows程序
构建布局良好的Windows程序
12 0
|
1天前
|
编译器 C语言 C++
|
1天前
|
Windows
LabVIEW启用/禁用Windows屏幕保护程序
LabVIEW启用/禁用Windows屏幕保护程序
15 4
LabVIEW启用/禁用Windows屏幕保护程序
|
1天前
|
存储 安全 搜索推荐
Windows之隐藏特殊文件夹(自定义快捷桌面程序)
Windows之隐藏特殊文件夹(自定义快捷桌面程序)
|
1天前
|
Windows
Windows 程序自启动实现方法详解
Windows 程序自启动实现方法详解
28 0
|
1天前
|
API C++ Windows
windows编程入门_链接错误的配置
windows编程入门_链接错误的配置
19 0
|
1天前
|
Linux Windows
Windows Server 下文件同步
Windows Server 下文件同步
20 0
|
1天前
|
开发框架 .NET 数据库
修改windows server 2008 时间和日期格式
修改windows server 2008 时间和日期格式
10 1