如果我将二进制格式的消息传递给队列,Azure WebJob 队列不会触发 WebJobs?
我已将GOOGLE PROTOBUF字节作为 CloudMessage 推送到 Azure 队列存储中。但是,Azure 队列存储没有 ping 并将该 CloudMessage 传递给我的 Azure 连续运行的 WebJob,而不是那些消息正在移动到毒物队列?
以下代码是我用于汇集队列消息的 WebJob。
程序文件:
public class Program
{
// Please set the following connection strings in app.config for this WebJob to run:
// AzureWebJobsDashboard and AzureWebJobsStorage
public static void Main()
{
try
{
JobHost host = new JobHost();
//Following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
catch (Exception ex)
{
throw ex;
}
}
}
函数.cs
public class Function
{
//This function will get triggered/Executed when new message is written on an Azure Queue called messagequeue
public static void ProcessMessageQueue([QueueTrigger("messagequeue")] string message)
{
#region WebAPI Call
#endregion
}
}
将消息字节添加到 Azure 队列的代码:
private void PushPayloadBytesToAzureQueueStorage(byte[] payload)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["AzureWebJobsStorage"]);
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
CloudQueue queue = queueClient.GetQueueReference("messagequeue");
queue.CreateIfNotExists();
CloudQueueMessage msg = new CloudQueueMessage(payload);
queue.AddMessage(msg);
}
我的情况是,我将消息作为字节添加到队列中,然后队列存储必须发送消息并触发我在 Azure 云中发布/运行的Web 作业。
我对下面的方法签名有疑问。
public static void ProcessMessageQueue([QueueTrigger("messagequeue")] string message)
我应该为上述方法签名中的消息参数使用什么数据类型,因为消息已成功添加到队列存储中,但队列不会触发 Azure 功能,并且所有队列消息都已移至毒物队列。
我在这里想念什么?
感谢您对此的想法。
提前致谢!