azure 용으로 두 개의 WebJob을 개발 중입니다. 하나는 주제를 사용하여 서비스 버스 대기열에 메시지를 넣고 다른 하나는 동일한 주제를 사용하여 ServiceBusTrigger에 가입합니다.FIFO로 작동하는 Microsoft Azure 서비스 버스 대기열
메시지는 서비스 버스 대기열로 올바르게 보내지 만 ServiceBusTrigger에 가입 한 WebJob을 실행하면 메시지가 FIFO 단위로 처리되지 않습니다.
서비스 버스 큐에 메시지를두고 WebJob에 대한 코드는 다음
namespace HO.Importer.Azure.WebJob.TGZProcessor
{
public class Program
{
static void Main(string[] args)
{
JobHostConfiguration config = new JobHostConfiguration();
config.UseServiceBus();
JobHost host = new JobHost(config);
host.RunAndBlock();
}
public static void WriteLog([ServiceBusTrigger("SampleTopic", "ImporterSubscription")] string message,
TextWriter logger)
{
Console.WriteLine(message));
}
}
}
: 서비스 버스 트리거에 subscrited되어
NamespaceManager namespaceManager = NamespaceManager.Create();
// Delete if exists
if (namespaceManager.TopicExists("SampleTopic"))
{
namespaceManager.DeleteTopic("SampleTopic");
}
TopicDescription td = new TopicDescription("SampleTopic");
td.SupportOrdering = true;
TopicDescription myTopic = namespaceManager.CreateTopic(td);
SubscriptionDescription myAuditSubscription = namespaceManager.CreateSubscription(myTopic.Path, "ImporterSubscription");
TopicClient topicClient = TopicClient.Create("SampleTopic");
for(int i = 1; i <= 10; i++)
{
var message = new BrokeredMessage("message"+i);
topicClient.Send(message);
}
topicClient.Close();
WebJob을 다음과 같은 코드가 있습니다 큐에서 메시지를 FIFO로 처리하려면 어떻게해야합니까?
미리 감사드립니다.
감사합니다. 내가해야 할 일은 blob이 컨테이너에 업로드 될 때 그것을 처리하는 것입니다. 요구 사항 중 하나는 BLOB에 도착할 때 순서대로 처리해야하기 때문에 순서를 지원하도록 설정된 서비스 버스 대기열에 알리는 것이 문제를 해결할 것이라고 생각했습니다. –
얼룩이 어떻게 도착 하느냐에 따라,이를 달성하기 위해 커스텀 로직을 만들 수 있습니다. blob이 순서대로 오는지 확실하다면 blob 트리거를 사용하지 않는 것이 어떻습니까? –