- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在未来项目的原型(prototype)中使用 Durable Azure Function。
基本上,我有一个由启动 Orchestrator 的 HTTP POST
请求触发的客户端 Azure 函数。然后,Orchestrator 决定触发一个 Activity。没什么复杂的。
这是我正在做的事情的示例:
[FunctionName("ClientFunction")]
public static async Task<HttpResponseMessage> OnHttpTriggerAsync([HttpTrigger(AuthorizationLevel.Anonymous, "post")]
HttpRequestMessage request, [OrchestrationClient] DurableOrchestrationClient starter, ILogger logger)
{
// Triggers the orchestrator.
string instanceId = await starter.StartNewAsync("OrchestratorFunction", null);
return new HttpResponseMessage(HttpStatusCode.OK);
}
[FunctionName("OrchestratorFunction")]
public static async Task DoOrchestrationThingsAsync([OrchestrationTrigger] DurableOrchestrationContext context, ILogger logger)
{
// Triggers some serious activity.
await context.CallActivityAsync("ActivityFunction", null);
}
[FunctionName("ActivityFunction")]
public static Task DoAnAwesomeActivity([ActivityTrigger] DurableActivityContext context)
{
// Short & Sweet activity...
// Wait... Where's my logger?
}
Orchestrator 和客户端函数都被赋予了一个 ILogger
,但事件函数没有;如stated在 documentation (无论是特定参数还是 DurableActivityContext
实例),Activity 函数仅获取一个参数。而且我并不认为声明这些方法的静态类可以保留对该 ILogger
的引用。
我知道事件函数应该执行一项小工作,但如果我能够记录在出现问题时使用适当的值调用事件(并且它会:)),我会更舒服。
问题
Activity 如何访问 ILogger
?
最佳答案
It is not possible to pass multiple parameters to an activity function directly. The recommendation in this case is to pass in an array of objects or to use ValueTuples objects in .NET.
这个restriction您关心的是我们从 Orchestrator 传递到 Activity Function 的参数。这并不意味着我们只能在 Activity 方法签名中使用一个参数。请随意添加 ILogger
并根据需要完成您的工作。
关于c# - 如何从事件函数获取 ILogger?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54598479/
我是一名优秀的程序员,十分优秀!