Azure调度程序: Add JSON message to Azure Storage Queue

标签 azure azure-storage-queues azure-scheduler

我创建了一个在特定时间运行并将 JSON 消息插入存储队列的调度程序。 JSON 消息是固定的,我在调度程序设置期间将其放入 BODY 字段(显示 text/plain)。消息是:

{ "action": "SendReminderMessages" }

在接收方(WebJob),我轮询队列,然后尝试反序列化这些消息中的 JSON。我得到的不是上面预期的 JSON,而是包装在 XML 消息中的 JSON 消息:

<?xml version="1.0" encoding="utf-16"?>
<StorageQueueMessage xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ExecutionTag>(Some Hex String)</ExecutionTag>
  <ClientRequestId>(Some GUID)</ClientRequestId>
  <ExpectedExecutionTime>2015-09-17T07:00:00</ExpectedExecutionTime>
  <SchedulerJobId>reminder-mails</SchedulerJobId>
  <SchedulerJobCollectionId>scheduler-jobs</SchedulerJobCollectionId>
  <Region>West Europe</Region>
  <Message>{ "action": "SendReminderMessages" }</Message>
</StorageQueueMessage>

如何按原样发送 JSON 消息,即不带信封?

最佳答案

调度程序当前将 XML 包装器添加到正文中,作为传递作业元数据的方法。您可以使用 Scheduler SDK 中的 StorageQueueMessage 类(在 Microsoft.WindowsAzure.Scheduler.Models 下)这将正确地反序列化消息。 您可以投票支持 Azure Scheduler 功能,以添加不包含包装器的功能 Azure Scheduler User Voice forum

关于Azure调度程序: Add JSON message to Azure Storage Queue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32624470/

相关文章:

Azure Function 和存储队列,如果函数失败怎么办

node.js - 我可以对 Azure Function 的单次运行中的多个项目进行排队吗?

asp.net-mvc - 使用基本身份验证模拟 Azure 调度程序

node.js - 为什么 Azure Bot Service Slack 连接器不转发事件和交互式消息?

javascript - 无法从 Azure 触发功能更新 cosmosDB 集合

c# - Microsoft.WindowsAzure.Storage 更新至 V8.2.1.0 破坏了我的代码

powershell - 使用 PowerShell 创建计划的 Azure WebJob

Azure WebJob 不接受有效的(?)CRON 表达式

azure - 在 Azure 中,为什么在多个网站上运行时,从单个存储帐户运行的同一个 WebJob 无法扩展?