我试图使用一个rabbitMQ扩展到webjob SDK(https://github.com/Sarmaad/WebJobs.Extensions.RabbitMQ)来让它触发时,一些东西放在队列中。TriggeredFunctionData null当进入Webjob SDK功能
触发工作正常,但内容永远不会传递到我的函数。
我下载了扩展的源代码,所以我可以在它内部进行调试,并且看到队列的内容已成功传递,并且扩展将其重新打包为TriggeredFunctionData对象。然后该对象通过Webjob执行程序传递给我的函数。 但是,当我进入我的功能这个对象是空的。
_consumer.Received += (sender, args) =>
{
var triggerValue = new RabbitQueueTriggerValue {MessageBytes = args.Body};
if (args.BasicProperties != null)
{
triggerValue.MessageId = args.BasicProperties.MessageId;
triggerValue.ApplicationId = args.BasicProperties.AppId;
triggerValue.ContentType = args.BasicProperties.ContentType;
triggerValue.CorrelationId = args.BasicProperties.CorrelationId;
triggerValue.Headers = args.BasicProperties.Headers;
}
var result = _executor.TryExecuteAsync(new TriggeredFunctionData{TriggerValue = triggerValue}, CancellationToken.None).Result;
调试时,我可以看到Triggervalue包含我的消息数据:从扩展的lib
监听方法。正在执行
我的功能:
public static async Task ProcessRabbitMqTopicStatusMessage([RabbitQueueTrigger("tempq")]
[RabbitQueueBinder("myexchange", "myroutingkey", "myerrorq",autoDelete:true,durable:true, execlusive:false)]
TriggeredFunctionData message,
TextWriter logger)
{
if (message != null)
{
}
}
这种方法被成功触发,但消息始终为空。
有什么建议吗?