2

我想知道我们是否可以使用 Hangfire 创建无限的工作/任务(类似于 Azure Worker 角色)。我想使用 Hangfire 计划作业(每 4 小时)在 Azure 队列中对电子邮件进行排队,然后运行无限 Hangfire 火灾并忘记作业/任务(当网站启动时)来处理(出列)每封电子邮件并将其发送到 Amazon SES每 200 毫秒(每秒 5 封电子邮件)。无限作业需要一直启动才能处理新的队列电子邮件。

因此,在性能方面是否可以这样做,然后如何管理可能停止无限工作的潜在错误以及如何在需要时重新启动它。在无限循环作业中,我还应该为每封电子邮件创建新的火灾并忘记任务,以便有可能对每封电子邮件进行其他重试尝试。我的 Hangfire 服务器将托管在 Azure 网站中。

最后,我这样做是因为 Amazon SES 无法对电子邮件进行排队。我的 Amazon AWS 订阅授权我每秒发送 15 封电子邮件。

希望清楚,谢谢

4

1 回答 1

-1

不知道为什么要为此目的使用 Hangfire,但 Azure WebJobs 似乎非常适合它可以在开箱即用的 Azure Queue 中处理消息。

https://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-webjobs-sdk-storage-queues-how-to/#trigger

然后,当队列中填满某些内容时,您可以将 Hangfire 作业排入队列。

public static void ProcessQueueMessage([QueueTrigger("emailqueue")] string email, TextWriter logger)
{
    BackgroundJobClient.Enqueue(() => SendEmail(email));
}
于 2015-07-31T03:55:18.017 回答