Я пытаюсь снять нагрузку с моего основного сервера. Для этого я создал микрослужбу для выполнения моей задачи печати, которая потребляла много ресурсов, и пытался интегрировать их с помощью концентраторов событий Azure. Проблема в том, что я не могу заставить работать webjob. Это код веб-задания:
public class Functions
{
[NoAutomaticTrigger]
public static async Task StartConsumerService()
{
Trace.WriteLine("Print - Inside StartConsumerService - Before GetEventProcessor");
var eventProcessor = API.Integrations.Azure.EventHub.Client.GetEventProcessor(Constants.Azure.EventHub.Hubs.Print);
Trace.WriteLine("Print - Inside StartConsumerService - Before RegisterEventProcessorAsync");
await eventProcessor.RegisterEventProcessorAsync<PrintEventProcessor>();
Trace.WriteLine("Print - Inside StartConsumerService - After RegisterEventProcessorAsync");
Console.ReadLine();
}
}
Это Program.cs
:
public class Program
{
public static void Main()
{
Trace.WriteLine("Print - Inside Main");
var config = new JobHostConfiguration();
if (config.IsDevelopment)
{
config.UseDevelopmentSettings();
}
Trace.WriteLine("Print - Inside Main - Before JobHost Initialization");
var host = new JobHost(config);
Trace.WriteLine("Print - Inside Main - Before Async Call");
host.CallAsync(typeof(Functions).GetMethod("StartConsumerService"));
Trace.WriteLine("Print - Inside Main - After Async Call");
host.RunAndBlock();
Trace.WriteLine("Print - Inside Main - After Run And Block");
}
}
WebJob запущен, и функция была вызвана. Я проверил это на портале Azure:
Вот как я запускаю клиент из своего веб-приложения:
var client = EventHubClient.CreateFromConnectionString(cs);
await client.SendAsync(new EventData(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(message))));
await client.CloseAsync();
Тем не менее, он никогда не используется обработчиком событий, работающим в веб-задании. Кроме того, ни одна из моих трассировок не отображается в журнале, ни в журнале веб-заданий из SCM, ни в журналах приложений на портале Azure WebApp.
Любые идеи? Прошло уже больше недели, а я не могу заставить это работать...