首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure and作业- QueueTrigger分期和生产

Azure and作业- QueueTrigger分期和生产
EN

Stack Overflow用户
提问于 2015-08-08 00:59:17
回答 1查看 375关注 0票数 2

我有一个Azure WebJob,将用于分期和生产。适当环境的键在app.config文件中设置。

ConfigManager类从app.config文件中读取属性。

代码语言:javascript
复制
 public static string FirstQueue
 {
     get { return ConfigurationManager.AppSettings["FirstQueue"]; }
 }

我希望QueueTrigger从app.config文件中指定的适当队列中读取该队列。

代码语言:javascript
复制
 public static void ProcessFirstQueue([QueueTrigger(ConfigManager.FirstQueue)] string message)
{
   //some function       
}

然而,QueueTrigger似乎不喜欢这样。我得到“一个属性参数必须是一个常量表达式,表达式类型.”有什么建议来安排这个吗。我不想硬编码值中的队列触发器。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-10 21:37:51

可以在运行时使用

INameResolver

下面是一个演示这一点的示例:

WebJob代码:

代码语言:javascript
复制
public class Program
{
    private static void Main(string[] args)
    {
        var config =
            new JobHostConfiguration("insert connection string")
            {
                NameResolver = new QueueNameResolver()
            };
        var host = new JobHost(config);

        host.RunAndBlock();
    }

    public static void ProcessNotification([QueueTrigger("%queueKey%")] string item)
    {
        //Handle message
    }

    public static void ProcessPoison([QueueTrigger("%queueKeyPoison%")] string item)
    {
        //Handle poison message
    }

}

下面是QueueNameResolver类:

代码语言:javascript
复制
public class QueueNameResolver : INameResolver
{
    //name = queueKey or queueKeyPoison
    public string Resolve(string name)
    {
        //Use the name to get it from the app.config or somewhere else.
    }
}

希望这能帮上忙

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31888567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档