【问题标题】:python + parse.com upload data if broken internet connection如果互联网连接中断,python + parse.com 上传数据
【发布时间】:2014-02-07 02:53:52
【问题描述】:

我使用带有无限循环的脚本将传感器数据上传到 parse.com。我用

batcher.batch_save(myDataPoints)

上传数据。 问题是如果运行脚本的计算机(树莓派)失去互联网连接,scipt 将退出错误,因为批处理程序无法访问解析 api。

我怎样才能避免这种情况?如果没有互联网连接,我希望程序执行一些代码并继续循环,但不退出错误。

谢谢。

【问题讨论】:

  • 我认为这真的很有趣。我看到一个非常复杂的问题,你真的需要两个无限循环,我认为它们可以重新连接在一起。首先你必须有一个循环'while connection good',然后你必须有一个循环'while connection bad',然后你必须在它们之间无缝地来回移动。因此,您必须以某种类型的突发对数据进行排队并测试以查看突发是否通过。问题是重新启动连接。对不起这里的意识流。执行一些代码是什么意思 - 您是否希望它在预期连接时旋转?
  • 好吧,我想我已经明白了——你需要一点递归。因此,您的上传功能一直运行,直到它不运行,然后微调器旋转,直到重新建立连接,当连接修复后,您返回批处理器。我看到的问题是您如何跟踪上传的内容和未上传的内容?

标签: python connection httprequest parse-platform


【解决方案1】:

如果您只是想在遇到错误后继续运行,您可以使用 try...except,例如

while True:
    try:
        upload_function()
    except Exception:
        pass

这应该会捕获您的异常,而不是退出您的 while 循环,只需继续。你可以把你想做的任何事情放在那里,你不必把它当作pass。

【讨论】:

    【解决方案2】:
    def spinner(newList):
        count = 0
        while connection_is_bad:
            count +=1
        x= uploader(newList)
    

    如果你的数据是一个列表,我认为它会变得更容易

    def uploader(someList):
        last_value = ''
        while connection_is_good:
            for item in someList:
                do some uploading
                last_value = item
    
            return something
        newList = someList[someList.index(last_value) + 1:]
        x = spinner(newList)
    

    这是我对一些伪代码的想法。我可以想象有多种方法可以跟踪正在传输的数据,但直到我看到它是如何收集的,我才完全确定

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-23
      • 1970-01-01
      相关资源
      最近更新 更多