如何将任意参数传递给 Azure WebJob SDK 方法?
How do I pass an arbitrary argument to an Azure WebJob SDK method?
我有一个使用触发器计划的 Azure WebJob 函数:
let resetTablesWebJob([<TimerTrigger "*/10 * * * * *">] timer:TimerInfo) =
// do stuff
()
但是我想将一些上下文信息也传递到网络作业中,例如
let resetTablesWebJob([<TimerTrigger "*/10 * * * * *">] timer:TimerInfo, myData:Foo) =
// do stuff with myData, too.
()
我在 SO 和其他地方看到了一些帖子,这些帖子经历了使用 DI 和 AutoFac 等执行此操作的整个麻烦 - 是否有一种稍微更轻量级的方法,我可以简单地传入JobConfig
在初始化时一些对象或值稍后将在 webjob 调用期间被绑定引擎拾取?
你不能这样做。计时器是一个触发器,触发器调用您的函数。没有机会与触发器一起传递参数。唯一允许的参数是触发器参数和可能从触发器派生的绑定。
相反,您可以:
- 引用静态变量。
- 使用 IJobActivator 并传递以创建 class 的实例,然后通过实例 属性 传入 arg。这是 DI 的构建块,但直接使用 IJobActivator 比完整的 DI 更轻量。
- 使用绑定。例如,将您的参数放入 blob(或 table、文件、redis 或您绑定的任何其他对象)中,然后绑定到它。即,在
[<Blob('container/blob.txt')>] data :string
我有一个使用触发器计划的 Azure WebJob 函数:
let resetTablesWebJob([<TimerTrigger "*/10 * * * * *">] timer:TimerInfo) =
// do stuff
()
但是我想将一些上下文信息也传递到网络作业中,例如
let resetTablesWebJob([<TimerTrigger "*/10 * * * * *">] timer:TimerInfo, myData:Foo) =
// do stuff with myData, too.
()
我在 SO 和其他地方看到了一些帖子,这些帖子经历了使用 DI 和 AutoFac 等执行此操作的整个麻烦 - 是否有一种稍微更轻量级的方法,我可以简单地传入JobConfig
在初始化时一些对象或值稍后将在 webjob 调用期间被绑定引擎拾取?
你不能这样做。计时器是一个触发器,触发器调用您的函数。没有机会与触发器一起传递参数。唯一允许的参数是触发器参数和可能从触发器派生的绑定。
相反,您可以:
- 引用静态变量。
- 使用 IJobActivator 并传递以创建 class 的实例,然后通过实例 属性 传入 arg。这是 DI 的构建块,但直接使用 IJobActivator 比完整的 DI 更轻量。
- 使用绑定。例如,将您的参数放入 blob(或 table、文件、redis 或您绑定的任何其他对象)中,然后绑定到它。即,在
[<Blob('container/blob.txt')>] data :string