混口饭吃的码农 2020-08-24 14:16 采纳率: 50%
浏览 212

接口怎么延时返回结果?

做一个售货机轮询的接口。
为了减少售货机的流量,需要在轮询时,如果未查到需要返回的数据时,
则要延时一段时间后再返回false,避免产生过多的轮询访问。
因为售货机是第三方的,只能控制接口返回时间来做这个限制。
然后之前我是直接写的look锁

    if (SlotNos.SlotNo == "0"){
        lock (string.Intern(SlotNos.MachineID))
        {//如果轮询为空,则延时10秒再返回
                Thread.Sleep(10000);
                return TJson(new { Status = 0 });
        }
    }

SlotNos.MachineID 这个是售货机编号 SlotNo是需要操作的货道号。
如果没有需要操作的货道号 我就延时返回结果
想问下 这么写会有问题吗? 如果这时候售货机有其他请求进来,会有影响吗
或者是会影响这个接口被其他售货机 或者被锁住的这台售货机访问吗?

  • 写回答

2条回答 默认 最新

  • threenewbee 2020-08-24 14:36
    关注

    SlotNos.MachineID主要看这里,会不会造成死锁。如果这是一个全局变量,不是没有可能。

    评论

报告相同问题?