我試圖使用一個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)
{
}
}
這種方法被成功觸發,但消息始終爲空。
有什麼建議嗎?