gpt4 book ai didi

asp.net-mvc-4 - Web API 2 返回 OK 响应但继续在后台处理

转载 作者:行者123 更新时间:2023-12-02 20:39:39 24 4
gpt4 key购买 nike

我已经为shopify创建了一个mvc web api 2 webhook:

public class ShopifyController : ApiController
{
// PUT: api/Afilliate/SaveOrder
[ResponseType(typeof(string))]
public IHttpActionResult WebHook(ShopifyOrder order)
{
// need to return 202 response otherwise webhook is deleted
return Ok(ProcessOrder(order));
}
}

其中ProcessOrder循环遍历订单并将详细信息保存到我们的内部数据库。

但是,如果该过程花费的时间太长,则 webhook 会再次调用 api,因为它认为它已失败。有没有办法先返回 ok 响应,然后再进行处理?

有点像当您在 mvc Controller 中返回重定向时,可以选择在重定向后继续处理其余操作。

请注意,我始终需要返回 ok 响应,因为 Shopify 尽其所能决定在失败 19 次时删除 Webhook(处理时间过长将被视为失败)

最佳答案

我已经通过使用Task异步运行处理来解决我的问题:

    // PUT: api/Afilliate/SaveOrder
public IHttpActionResult WebHook(ShopifyOrder order)
{
// this should process the order asynchronously
var tasks = new[]
{
Task.Run(() => ProcessOrder(order))
};

// without the await here, this should be hit before the order processing is complete
return Ok("ok");
}

关于asp.net-mvc-4 - Web API 2 返回 OK 响应但继续在后台处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27060447/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com