我有不同类型的活动.例如,一些数据是遥测数据,一些是错误信息等.
我认为创建几个IEventProcessor实现是一个好主意,每个事件类型一个.因此,每个实现将以不同方式处理事件.就像写入文件或数据库一样.
将事件路由到特定EventProcessor的最佳方法是什么?
我必须说,我发现partitionkey和consumergroup(如果有的话)之间的关系记录严重.
我使用了选项2,但到目前为止,每个EventProcessor都从所有使用者组名中获取消息,而不仅仅是在EventProcessorHost构造函数中指定的消息.
问题:本地 SQL Server 中存储/生成的数据需要记录到应用程序洞察中。该数据既代表传递给存储过程的临时数据,也代表存储在表中的具体数据。我问这个问题是为了弄清楚是否有任何直接的方法可以做到这一点。到目前为止,我已经提出了以下选项,如果没有直接的解决方案,请告诉我哪个是最适合该任务的选项。
选项:
文档说:
提醒是一种在指定时间触发参与者持久回调的机制。它们的功能类似于计时器。但与计时器不同的是,在所有情况下都会触发提醒,直到参与者明确取消注册它们或明确删除参与者为止。具体来说,由于 Actor 运行时会保留有关 Actor 提醒的信息,因此在 Actor 停用和故障转移期间会触发提醒。
假设我们将提醒设置为在 1 小时后运行,但 Actor 的空闲超时为 10 分钟,扫描间隔为 2 分钟(在 actor 中设置ActorGarbageCollectionSettings)。
前 15 分钟后会发生什么情况,Actor 处于空闲状态,因此被 GC 并停用。那么它如何知道 45 分钟后重新创建 Actor?它如何知道使用什么 Actor ID 来创建 Actor?
问这个问题是因为我想知道这些模式是如何工作的:
https://www.codit.eu/blog/2016/08/25/how-to-enable-automatic-scheduling-in-service-fabric-actors/
我有一个查询,它提取以下形式的用户参与列表:日期、用户名、活动 ID、
在某种意义上,campaign_id 具有唯一性,即用户每天只点击一次 Campaign_id(同一用户不能在一天内记录两次campaign id)
我的问题是如何提取每月唯一活跃用户的列表?一个用户可以针对不同的活动和不同的日期多次登录。
customEvents
| extend rTimeStamp = todatetime(customDimensions.timeStamp),
username = tolower(tostring(customDimensions.username)),
event = name, item_uid = tostring(customDimensions.itemId)
| extend rTimeStamp = todatetime(substring(tostring(rTimeStamp), 0, 10))
| where event == 'click'
| project rTimeStamp, username, event, item_uid
| summarize arg_min(rTimeStamp, *) by item_uid, username
| summarize click_count = countif(event == 'click') by rTimeStamp, username, item_uid
| order by rTimeStamp
Run Code Online (Sandbox Code Playgroud) 是否可以更改触发的默认事件blobcreated?
存储帐户具有在删除/创建Blob时触发事件的功能:
如果添加新的事件订阅,则可以在以下三个选项之间进行选择:
我希望能够使用“ 自定义输入模式”。但是,没有有关如何使用它的文档。
我们如何自定义自定义输入模式?
默认模式如下所示:
{
"topic": "/subscriptions/xxxxxxxxxxx/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystoraccount",
"subject": "/blobServices/default/containers/xmlinput/blobs/myj.json",
"eventType": "Microsoft.Storage.BlobCreated",
"eventTime": "2019-05-20T18:58:28.7390111Z",
"id": "xxxxxxxxxxxxxxxx",
"data": {
"api": "PutBlockList",
"clientRequestId": "xxxxxxxxxxxxxxxx",
"requestId": "xxxxxxxxxxxxxxxx",
"eTag": "0x8D6DD55254EBE75",
"contentType": "application/json",
"contentLength": 874636,
"blobType": "BlockBlob",
"url": "https://mystoraccount.blob.core.windows.net/xmlinput/myj.json",
"sequencer": "00000000000000000000000000005FAC0000000000614963",
"storageDiagnostics": {
"batchId": "xxxxxxxxxxxxxxxx"
}
},
"dataVersion": "",
"metadataVersion": "1"
}
Run Code Online (Sandbox Code Playgroud)
我想只返回文件名,在这种情况下,它是一个字符串subject,myj.json。
我们如何自定义要触发的事件?
所需结果:
{
"filename": "myj.json"
}
Run Code Online (Sandbox Code Playgroud) 我有一个定期发射的事件.我们假设处理事件大约需要1秒.我没有等待每个接收到的事件1,而是想累积事件直到最后一次处理完成.处理完成后,我想处理上次处理过程中收到的事件数据:
e1 e2 e3 e4 e5 e6 e7 events happening
---------------------------------------------------------------------------------------------------------------------------------------------------> time
1s 2s 3s 4s 5s 6s
p(e1) p(e2, e3) p(e4) p(e5, e6) p(e7)
[-----------------------][-----------------------] [-----------------------][-----------------------][-----------------------] processing of items
In above example, processing start as soon as e1 happens. While the processing takes places 2 more events have arrived. They should be stored so when p(e1) - which means the processing of e1 -
is finished the processing of the events e2 and e3 takes place.
This proces is …Run Code Online (Sandbox Code Playgroud) 如何在Azure Fabric Cluster中获取运行我的代码的计算机的名称以进行日志记录?
我在带有一些节点的结构集群中运行ac#代码.我想记录一些信息以及机器名称.我正在使用FabricRuntime,但它没有帮助我.做这个的最好方式是什么 ?
谢谢.
好吧,我是 Vb.NET 的初学者,尽管我几年前就开始学习,然后又开始休息,然后又休息。所以,无论如何,我仍然是初学者,我无法理解这个 WithEvents 的实际用途以及如何以及何时使用?我在 Dim 上学习并遇到了 Dim WithEvents。我尝试查找文章,但与我的水平相比,所有文章的编程代码级别都更高,因此我需要时间才能达到该水平。在那之前,我现在想知道 WithEvents 的实际用法。有人可以给我任何简单的程序,可以使WithEvents变得清晰吗?
源链接: 通用WithEvents
WithEvents+Handles+Overrides 事件+句柄+覆盖
https://msdn.microsoft.com/en-us/library/stf7ebaz(v=vs.90).aspx
谢谢。
使用时,async/await我关心的是在处理消息的过程中处理客户端。考虑以下:
初始化队列客户端queueClient并将对它的引用存储在类的全局范围内
队列客户端处理一条消息并调用一些应用程序代码来处理它,这可能最终会做一些异步数据库工作或调用远程 api。
考虑应用程序是一个 Windows 服务,它的CloseAsync方法是在服务应该关闭时发出信号。在这个方法中,我调用queueClient.CloseAsync()
步骤 2 中正在完成的工作完成并转到调用message.Complete(). 在这一点上,我假设 queueClient 已关闭,消息将被视为失败。
确保队列客户端不再处理消息并等待关闭直到任何当前处理的消息完成的最佳实践是什么?