- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两种不同的方案来使用 Azure 队列存储处理 2 种不同类型的队列。
我想设置一个队列依次运行,另一个同时运行。
我一直在查看文档,我可以将配置应用到影响整个队列范围的主机。
static void Main(string[] args)
{
JobHostConfiguration config = new JobHostConfiguration();
config.Queues.BatchSize = 8;
config.Queues.MaxDequeueCount = 4;
config.Queues.MaxPollingInterval = TimeSpan.FromSeconds(15);
JobHost host = new JobHost(config);
host.RunAndBlock();
}
我可以使用单个 Azure 存储帐户来配置这些场景吗?
最佳答案
根据您的问题,我了解到您有 2 个队列,每个队列需要用于处理不同的任务/作业。
您可以遵循这些方法
1) 部署2个Web作业,每个作业在不同的队列上等待,并在各自的队列上出现消息时触发相应的作业。您上面提到的配置代码为一项作业设置了基础。 AFAIK,一项工作可以在一个队列上等待。您可以在 Main()
方法
public static void ProcessQueueMessage([QueueTrigger("logqueue")] string logMessage)
{
//do something
}
2) 如果您想根据一个队列中的消息触发多个场景,您可以在 ProcessQueueMessage
方法上使用 if else block ,或者如果您想让它更易于管理,请使用策略模式从 ProcessQueueMessage
如果您遵循上面的#1,您将为每个任务/作业/场景部署不同的 Web 作业。如果您遵循上面的#2,您将部署一个 Web 作业,并且每条消息的作用是在处理消息时决定的。
与等待队列相关的文档 here .
[更新]
正如我们所知,一个 Web 作业只能等待一个队列,在这种情况下,等待队列并不是正确的方法。最好定期触发网络作业(比如每 5 分钟触发一次)。从多个队列中取出消息并对其进行处理的逻辑将成为一项 Web 作业的一部分。处理每个队列可以是由 Web 相同作业调用的方法(依次调用或同时使用 Task
)。您可以在 CloudQueue.GetMessages
上为每个队列传递消息计数。它与 Windows 服务的作用非常相似。只是触发部分由 Web 作业负责,并且它作为 Web 作业而不是 Windows 服务运行。这是一个粗略的伪代码:
main()
{
// initialize webjob
}
public static MyWebJobMethod(...)
{
Task a = () => {//process queue 1};
Task b = () => {//process queue 2}
Task.WaitAll(a,b);
}
关于azure - 使用 Azure 队列存储为每个队列配置 QueueTrigger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28910895/
如果我要使用 Azure.Storage.Queue 从队列中获取消息 queue.GetMessage(TimeSpan.FromMinutes(20)); 我可以设置可见性超时,但是当尝试使用 A
我当前正在使用 WebJobs SDK 来使用队列中发出的消息。 我的方法作为带有 [Microsoft.Azure.WebJobs.QueueTrigger(...)] 属性的一个参数,并且可以正常
我正在使用推荐的设置运行 azure webjobs SDK 控制台应用程序(连续): public static void ProcessQueueMessage([QueueTrigger("lo
我有一个带有 QueueTrigger 的 Azure WebJobs: public void ProcessTestQueueByTrigger( [QueueTrigger("test-
我已经准备好了一些 Webjob,每个 Webjob 都会响应多个 QueueTrigger,例如 public static void ProcessMessage([QueueTrigger("X
我希望我的队列每 90 分钟重试一次失败的网络作业,并且仅重试 3 次。 创建队列时我使用以下代码 CloudQueueClient queueClient = storageAcco
我已经准备好了一些 Webjob,每个 Webjob 都会响应多个 QueueTrigger,例如 public static void ProcessMessage([QueueTrigger("X
我希望我的队列每 90 分钟重试一次失败的网络作业,并且仅重试 3 次。 创建队列时我使用以下代码 CloudQueueClient queueClient = storageAcco
我有两种不同的方案来使用 Azure 队列存储处理 2 种不同类型的队列。 我想设置一个队列依次运行,另一个同时运行。 我一直在查看文档,我可以将配置应用到影响整个队列范围的主机。 static vo
我正在开发一个 azure 函数,它将由 azure 存储队列触发。对于 HTTPTrigger,我们可以在本地进行调试,但我无法找到在本地调试 QueueTrigger 的方法。你们中的任何人都可以
public static void ProcessMessage([QueueTrigger("queue")] string message, TextWriter log) { //pr
我使用 1.0.0 WebJobs SDK 持续运行 WebJob。 这是配置代码。 public static void Main() { var config = new JobHostC
我在 Azure 上有一个 Web 作业,带有 QueueTrigger。作业时间长(超过30分钟) public async static Task ProcessQueueMessageAsync
我正在尝试查找有关应从 Azure 存储队列触发的 Azure WebJobs QueueTrigger 方法的错误。 我已经阅读了一些文档(如博客文章/msdn 文章中)。但我还是不太清楚。 主要问
目前我正在使用 asp.net 开发一个 WebApi 项目。我想将所有非时间关键且长时间运行的操作转移到 webjobs 中,以保持我的 API 快速而简单。 例如,当创建特定资源时,它会立即创建(
我创建了一个这样的函数 public static Task HandleStorageQueueMessageAsync( [QueueTrigger("%QueueName%", Conn
我创建了一个这样的函数 public static Task HandleStorageQueueMessageAsync( [QueueTrigger("%QueueName%", Conn
我有一个 Azure Functions QueueTrigger,它在存储队列上监听这样的消息: Message text -------------------------- {"ClientNa
假设以下典型Queue Trigger功能: public void Run([QueueTrigger("queue1")]object data, ILogger log) { // Do
我有一个 azure 函数队列触发器。它在本地工作正常,但在部署时却不行。在 Application Insights 中,我可以看到以下错误消息,并且由于此异常,队列触发器不会被调用。我有一个带有
我是一名优秀的程序员,十分优秀!