【问题标题】:How to send constantly updated data in http request?如何在http请求中发送不断更新的数据?
【发布时间】:2016-05-08 15:19:52
【问题描述】:

假设我有计算机 A 和一个变量 x,它更新得非常频繁,并且这个更新也需要一些时间(假设:要求每秒更新一次,更新需要 0.5 秒)。

现在,每分钟一次,我的计算机 B 在 HTTP GET 请求中询问 x 的值。 A 给他发了一份 x 的副本。

因为 x 可能会被 A 使用,所以我需要确保不会出错。
我怎么能保证呢?我有哪些选择?

【问题讨论】:

  • 我认为我不太了解您的问题,但您是否正在寻找类似的东西:有一个变量“busy”,如果正在使用“x”,则将其设置为 true。因此,如果 A 使用“X”并且 B 发送 HTTP GET 请求,则服务器将响应“x”正在使用或拒绝该请求。
  • @farooqaaa 我不能拒绝请求,我必须返回 x 或 x 上的函数。如何以一种聪明的方式等待 A 完成使用 x?
  • 记住最后一个x并发送它而不等待新的x
  • 如果它不断更新,那么只需给它“x”的当前值。下一次它请求它应该得到新的值。如果使用了“x”的值,并不意味着它不能被访问。如果您在忙时拒绝请求,情况也是如此。下一个请求将检索新值。
  • @farooqaaa 这是您可以给编写并发代码的人提供的最糟糕的建议。测试永远不能证明代码是正确的,只是它是错误的。众所周知,测试并发代码很难开始,最好事先考虑问题。

标签: python multithreading http operating-system communication


【解决方案1】:

我认为你可以在函数回调中返回 x。

或者像twisted reactor.callLater,服务器B 可以请求两次等待A 得到持续的结果。但是每秒更新x,我可能会导致其他服务器总是请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 2015-09-15
    相关资源
    最近更新 更多