azure - Azure WebJob 中的 EventHub 注册处理器不起作用
问题描述
我正在尝试减轻我的主服务器的负载。为此,我创建了一个微服务来处理消耗大量资源的打印任务,并尝试使用 Azure 事件中心集成两者。问题是,我似乎无法让网络作业正常工作。这是网络作业的代码:
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();
尽管如此,它永远不会被运行在 webjob 上的事件处理器消耗掉。此外,无论是来自 SCM 的 webjob 日志,还是来自 Azure WebApp 门户的应用程序日志,我的任何跟踪都没有出现在日志中。
有任何想法吗?现在已经一个多星期了,我无法让它工作......
解决方案
我过去在网络作业中的通话经历非常糟糕Console.Readline()
(是从带有泵和网络作业的常规控制台的基本移动遗留下来的)
从理论上讲,这Console.Readline()
对于保持工作正常运行并不是必需的,这要归功于RunAndBlock()
推荐阅读
- android - 原生 C++ WiFi P2P 网络可以在 Android 设备上使用吗?
- javascript - Vuex,命名空间的模块获取器在根获取器中不可用?
- php - 如何使用正则表达式 preg_replace php 删除字符串
- r - 使用 Rshiny 下拉菜单比较两个 CSV 文件
- java - 如何使用java库复制rails之类的迁移行为
- bixby - 解析来自 getUrl() 的 HTML 响应
- c++ - C++ CLI / 将 MSVCP140D.dll 包含到项目中
- sql - 仅当下一行与上一行不同时才计数
- autohotkey - 如何使我的反拖延脚本免于注销和关机?
- parsing - 如何在不使用过程宏的情况下解析 Rust 代码?