在Azure WebJob中动态启用/禁用触发的功能

时间:2017-08-10 16:41:53

标签: c# azure azure-webjobs azure-webjobssdk

我们有一个azure Web作业,在functions.cs文件中有两个方法。这两个作业都是从Azure Service Bus中的不同主题触发的。

由于它在运行时使用反射来确定由命中主题的消息运行/触发的函数,因此代码中没有对这些方法的引用。

public static async Task DoWork([ServiceBusTrigger("topic-one", "%environmentVar%")] BrokeredMessage brokeredMessage, TextWriter log) {}

public static async Task DoOtherWork([ServiceBusTrigger("topic-two", "%environmentVar2%")] BrokeredMessage brokeredMessage, TextWriter log) {}

根据运行时设置的变量,我需要让这个Web作业同时运行这两种方法,或者只运行其中一种方法(它不会更改一个正在运行的作业,但它会被读入当工作开始时)。我不能简单地根据变量将方法的内部包装在if()中,因为这会读取并销毁消息。

是否可以使用JobHostConfigurationIServiceProvider)来实现此目的,因为它是在运行时构建的。这是JobHostConfiguration.IJobActivator可以用于吗?

0 个答案:

没有答案