我想知道我们是否可以使用Hangfire创建无限的工作/任务(类似于Azure Worker角色)。我想使用Hangfire预定作业(每4小时)在Azure队列中排队电子邮件,然后运行无限的Hangfire火灾并忘记工作/任务(当网站启动时)处理(出列)每封电子邮件并将其发送到Amazon SES每200毫秒(每秒5封电子邮件)。为了处理新的队列电子邮件,无限的工作需要一直在增加。
因此,性能明智是可以这样做,然后如何管理可能阻止无限作业的潜在错误以及如何在需要时重新启动它。在无限循环作业中,我还应该为每封电子邮件创建新的fire and forget任务,以便有可能对每封电子邮件进行其他重试尝试。我的Hangfire服务器将托管在Azure网站中。
最后,我正在做这一切,因为Amazon SES无法对电子邮件进行排队。我的亚马逊AWS订阅授权我每秒发送15封电子邮件。
希望它清楚, 谢谢,
答案 0 :(得分:-1)
不确定为什么要将Hangfire用于此目的,但Azure WebJobs似乎非常适合在Azure Queue中开箱即用的处理消息。
然后,当队列充满某些东西时,您可以将Hangfire作业排入队列。
public static void ProcessQueueMessage([QueueTrigger("emailqueue")] string email, TextWriter logger)
{
BackgroundJobClient.Enqueue(() => SendEmail(email));
}