混口饭吃的码农 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主要看这里,会不会造成死锁。如果这是一个全局变量,不是没有可能。

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器