簡體   English   中英

如何將消息發送到我的隊列和發布請求?

[英]How can I send messages to my queue and a post request?

我有一個將數據發布到數據庫的功能。 它工作正常,但我也想使用相同的功能發送消息來觸發另一個功能。

我試圖同時發送消息並發出帖子請求,但此時只有帖子請求有效

這是我的代碼的樣子

const params = {
    "TableName": "sites",
    "Item": {
      userId: event.requestContext.identity.cognitoIdentityId,
      siteId: siteIdFinal,
      ...data,
      createdAt: Date.now()
    }
  };

  const messageParams = {
    MessageBody: 'Waddup fam',
    QueueUrl: ' https://sqs.eu-west-1.amazonaws.com/106845550704/MyQueue'
  };


  try {
    await dynamoDbLib.call("put", params);
    sqs.sendMessage(messageParams, (err, data) => {
      if (err) {
        console.log("Error: "+err);
      } else {
        console.log("Success: "+data.MessageId);
      }
    });

    return success(params.Item);
  } catch (e) {
    console.log(e);
    return failure({ status: false });
  }

我沒有收到任何錯誤我只是返回已發布的數據。 我以為我應該收到我發送的消息的消息ID,但我沒有得到。 當我查看cloudwatch日志時,不會發送消息

您的異步函數在sendMessage執行回調之前返回params.Item 使用promise來確保兩種方法都正確完成

await sqs.sendMessage(messageParams).promise()
    .then(function(data) {
        console.log("Success: "+data.MessageId);
    }).catch(function(err) {
        console.log("Error: "+err);
  });

有關aws-sdk和promises的更多信息: https//aws.amazon.com/blogs/developer/support-for-promises-in-the-sdk/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM