如果您想了解c#–WindowsAzure上的作业队列设计的相关知识,那么本文是一篇不可错过的文章,我们将为您提供关于.net–WindowsAzure上的AspPDF和AspJPEG、.net–在W
如果您想了解c# – Windows Azure上的作业队列设计的相关知识,那么本文是一篇不可错过的文章,我们将为您提供关于.net – Windows Azure上的AspPDF和AspJPEG、.net – 在Windows Azure上部署MPI应用程序、azure-storage – 在Windows Azure Blob存储中使用子目录、azure-storage – 无法初始化Windows Azure存储模拟器的有价值的信息。
本文目录一览:- c# – Windows Azure上的作业队列设计
- .net – Windows Azure上的AspPDF和AspJPEG
- .net – 在Windows Azure上部署MPI应用程序
- azure-storage – 在Windows Azure Blob存储中使用子目录
- azure-storage – 无法初始化Windows Azure存储模拟器
c# – Windows Azure上的作业队列设计
要求:
>能够将作业推入队列.
> N个工作人员可以从队列中使用作业并处理它们.
>工作的调用者应该能够被警告(推,而不是轮询)正在完成的工作.
迄今为止的研究:
>使用Azure服务总线队列创建“作业”队列(http://blogs.msdn.com/b/appfabric/archive/2011/05/17/an-introduction-to-service-bus-queues.aspx)
> Web前端将Jobs推送到队列,worker无限期地阻塞Receive()(参见http://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.brokeredmessage.aspx),直到Job准备就绪(避免“null”长轮询,这会因API调用交易成本而花钱)
关于工作完成的通知:
>当作业完成时,没有明显的警报能力.
我认为我可以利用服务总线主题/订阅(https://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-topics/)并让呼叫者“订阅”“作业完成通知”主题,但是:
>您显然无法多次订阅同一主题,除非您创建多个“订阅”条目(不会缩放)
>除非我们为每个作业ID创建了“订阅”,并且在该订阅上的Receive()API调用(使用I / O完成端口)上调用了块,否则我们无法获得有关作业的实时通知已经处理完毕.
以前有没有人有过实现这种Job系统的经验(实时,低延迟,有调用者的完成通知)?
谢谢
解决方法
因此,一种方法是使用内部端点在Web角色上创建Web服务.您使用队列将服务的地址以及消息发送到辅助角色.作业完成后,worker角色将调用该服务以通知Web角色该作业已完成.
这种方法很好,但它没有提供太多价值.它无法在UI上显示某些内容(除非您实现Web套接字),因为服务器无法通知浏览器.因此,如果您想在浏览器客户端中显示通知,我建议您使用拉解决方案(除非您实现Web套接字).如果您使用的是富客户端,则可以在客户端计算机上托管Web服务,并让worker角色通过调用该服务来通知客户端.
最好的祝福,
徐明.
.net – Windows Azure上的AspPDF和AspJPEG
在Azure中,这个过程略有不同,我将回答我自己的问题,以帮助那些面临类似挑战的人.此方法可用于需要在部署过程中在服务器上注册的任何dll.
为此,我们可以指示在目标服务器上执行命令文件.此任务在ServiceDeFinition.csdef文件中定义,如下所示:
<Startup> <Task commandLine="RegisterPersits.cmd" executionContext="elevated" taskType="simple" /> </Startup>
提升的执行上下文确保必须在服务上线之前执行此过程. Azure Fabric Controller将在BIN文件夹中查找.cmd文件.您可以在记事本中创建.cmd,然后更改扩展名.这是.cmd文件的内容.
chcp 1252>NUL regsvr32 /s .\library\asppdf64.dll regsvr32 /s .\library\aspjpeg64.dll exit /b 0
我们使用参数/ s调用regsvr32工具,这确保响应是静默的,即没有会混淆结构控制器的弹出窗口.这很重要,因为我浪费了大量时间,想知道为什么部署过程暂停在初始化阶段……添加/ s参数解决了这个问题!
在我的情况下,我将DLL放在一个名为library的文件夹中,但您可以将它们放在任何您喜欢的地方,前提是它们在.cmd文件中被正确引用.还要确保为Visual Studio中的启动命令中引用的任何DLL设置以下文件属性:
构建行动:内容
复制到输出目录:始终
注册DLL的这个额外过程为部署过程增加了几乎可以忽略的时间.另一个特定于AspPDF的点是使用正确的DLL版本的重要性. Persits发出32位和64位dll,Azure VM在64位环境中运行,因此在上述过程中注册asppdf64.dll非常重要,注册32位dll会在应用程序中引发模糊错误.幸运的是,您无需为64位版本的AspPDF购买单独的许可证.
我希望这将有助于其他面临类似问题的人将Comp组件(如AspPDF)迁移到Azure.
.net – 在Windows Azure上部署MPI应用程序
>如果可能,如何部署应用程序?
>是否有必要将其转换为Microsoft MPI?
>我需要为此购买特定类型的Azure服务吗?
>是否有必要编写托管包装器以使其工作?
任何建议/意见/参考将是非常有帮助的.
P.S我是Azure的新手.
无论如何,HPC Server附带的“Microsoft” MPI只是一个重新品牌,可能稍微调整了MPICH2;所以这是一个标准的MPI,这应该没有问题.任何符合MPI标准的MPI程序都应该没问题.
至于运行单个MPI作业,这并不比在少数(比如)桌面上第一次运行MPI作业更难;您必须确保正确设置了主机文件,并且MPI已设置为与相应的IP块通信.在Technet上,他们有一个running the linpack benchmark on Azure nodes的例子(包括确保你的Azure workers are running HPC server所需的链接).他们跳过几步,因为linpack是一个可以下载的预构建二进制文件,但使用MPI进行编译非常简单.
至于部署应用程序以便您可以定期运行它(或让其他人运行它),我会推荐其他人如何最好地执行此操作.
azure-storage – 在Windows Azure Blob存储中使用子目录
// Setup the Windows Aure blob client CloudStorageAccount storageAccount = CloudStorageAccount.FromConfigurationSetting("BlobStorage"); CloudBlobClient client = storageAccount.CreateCloudBlobClient(); // Retrieve the TestContainer container from blob storage CloudBlobContainer container = client.GetContainerReference("TestContainer"); if (container.CreateIfNotExist()) container.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccesstype.Blob }); // Setup the blob CloudBlob blob = container.GetBlobReference(""); // Create the Meta data for the blob NameValueCollection Metadata = new NameValueCollection(); Metadata["id"] = fileID.ToString(); blob.Metadata.Add(Metadata); // Store the blob byte[] bytes = GetFileBytes(); blob.UploadByteArray(bytes);
如何上传具有目录结构的文件?链接here提到有一种方法可以做到这一点.但是,它没有告诉你如何做到这一点.
谢谢!
解决方法
CloudBlobContainer testContainer = blobClient.GetContainerReference("testcontainer"); //Upload using a CloudBlobDirectory object var dir = testContainer.GetDirectoryReference("UsingClouddirectory/foo/bar/baz/"); var blobRef = dir.GetBlockBlobReference("BlobByDir.bin"); using (MemoryStream ms = new MemoryStream(new byte[] { 0x0 })) { blobRef.UploadFromStream(ms); } //Upload using the filename without a CloudBlobDirectory var blobRef2 = testContainer.GetBlockBlobReference("UsingBlobName/foo/bar/baz/BlobByName.bin"); using (MemoryStream ms = new MemoryStream(new byte[] { 0x0 })) { blobRef2.UploadFromStream(ms); }
azure-storage – 无法初始化Windows Azure存储模拟器
还有其他一些我错过的设置吗?
谢谢
解决方法
>单击“开始”,指向“所有程序”,然后单击“Windows Azure SDK”
V1.4
>右键单击“Windows Azure SDK命令提示符”,然后单击“运行方式”
管理员
>在Windows Azure SDK命令提示符窗口中,键入以下内容
命令:DSInit / sqlInstance:< sqlServerInstance> ;;
http://blog.nimbo.com/error-failed-to-initialize-windows-azure-storage-emulator/
如果没有,请发布错误的完整日志.
今天关于c# – Windows Azure上的作业队列设计的介绍到此结束,谢谢您的阅读,有关.net – Windows Azure上的AspPDF和AspJPEG、.net – 在Windows Azure上部署MPI应用程序、azure-storage – 在Windows Azure Blob存储中使用子目录、azure-storage – 无法初始化Windows Azure存储模拟器等更多相关知识的信息可以在本站进行查询。
本文标签: