3

我在 Azure webjob 中同时运行多个 QueueTrigger 实例。它是一个函数,但被并行调用多次。

我的函数使用静态变量来缓存多次使用的数据。

有时,当函数运行时,我会在静态对象上发生冲突,这只能由多个尝试同时访问它们的进程来解释,但我被引导相信 queuetrigger 的每个实例都是独立运行的。

所以我的问题是;

queuetrigger 实例是单独执行的吗?

如果没有,是否有在加载“实例”时触发特定事件以便可以加载静态对象?

4

1 回答 1

1

通过一些实验弄清楚了。

QueueTrigger 实例作为 WebJob 在其中运行的进程的一部分运行,并且不会单独执行。

如果未告知 WebJobs 保持打开状态,WebJobs 会自动关闭,并且会丢失所有静态数据。这可能会导致令人困惑的行为,但这是设计使然。

于 2018-09-27T21:40:43.930 回答