Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在服务器上每分钟更新一次xml文件_Android_Python_Ios_Json_Xml - Fatal编程技术网

Android 在服务器上每分钟更新一次xml文件

Android 在服务器上每分钟更新一次xml文件,android,python,ios,json,xml,Android,Python,Ios,Json,Xml,我在python中有很多函数,它会占用存储的运行时间,并在存储打开、关闭或在30、29、28内关闭时输出。。。分钟现在我有了一个iOS和android应用程序,可以显示100家商店的输出 我想让它这样做,让我的py脚本生成一个XML文件,告诉每个商店它是打开的、关闭的还是关闭的,看起来像这样 <?xml version="1.0" ?> <root> <name store="one"> <field1 name="blah"&g

我在python中有很多函数,它会占用存储的运行时间,并在存储打开、关闭或在30、29、28内关闭时输出。。。分钟现在我有了一个iOS和android应用程序,可以显示100家商店的输出

我想让它这样做,让我的py脚本生成一个XML文件,告诉每个商店它是打开的、关闭的还是关闭的,看起来像这样

<?xml version="1.0" ?>
<root>
    <name store="one">
        <field1 name="blah">open</field1>
    </name>
    <name store="two">
        <field2 name="slah">closing in 17</field2>
    </name>
</root>
但要做到这一点,我必须让我的py脚本每分钟运行一次cron作业,这对于我运行py脚本的次数来说是非常密集的,而且当脚本更新一个新文件时,根据脚本运行的时间,旧版本会下降大约5秒钟,因此如果您在这段时间内尝试获取应用程序的信息,您将一无所获

所以我的问题是,有没有比输出XML文件(可能是JSON)更好的方法,我知道这会更快地将数据传输到手机上,但我不确定是否是为了生成文件?还是有更好的办法


提前感谢您的帮助。

我认为最好在向服务器发出请求时生成数据。您可以使用套接字功能扩展python脚本,以侦听某个端口,然后生成数据,或者运行另一个服务,该服务将调用python脚本并发回结果

我更喜欢JSON而不是XML,因为在我看来,JSON的语法更清晰,在Android和iOS应用程序中更容易解析

-编辑-

要创建python web服务,可以使用web框架。我必须承认我对python的经验很少,但我相信这会为您指明正确的方向

要从例如php文件调用python脚本,可以执行以下操作:

$storeTimes = system('python storescript.py myargs', $retval); 
然后,您可以将php文件放在web目录中,并通过HTTP访问它。确保以JSON格式输出数据


请注意,上述选项到目前为止还不是一个完整的RESTfull Web服务。我不知道有关应用程序规模的详细信息,但如果您想了解更多信息,可以阅读

,您可以做一些事情。我认为最好的办法是:

A

用javascript编写脚本,然后在客户机上执行python脚本。这将使您只需要一个代码库,并且避免一直调用您的web服务+您只需要一个静态文件

B

按照@TMKVU的建议做

C

每5或30分钟运行一次cron,只需包括它实际运行的时间。然后你可以减去时间:

假设它是10分钟前生成的,那么您只需从“closing in”语句中减去10分钟即可

无论如何:


如果可以避免,请扔掉XML或JSON中的“人类可读”部分“closing in…”,然后在设备上这样做

感谢您的回复,当您说删除人类可读的部分时,您的意思是让xml说open、closed或closing的值,例如13,然后在设备上如果看到一个数字添加closing?正当您是否介意在a中添加更多内容,因为我可以用javascript实现,但我不确定您所说的在客户端上执行是什么意思……谢谢您的回复。您能告诉我更多关于使用套接字功能进行扩展的信息,以及如何做到这一点/或者如何让另一个调用它的服务运行吗?仅供参考,将有大约100家商店营业时间,我想一次给大约5家打电话time@spenf10我认为编写服务代码有点超出了问题的范围,但是我会更新我的答案,为您指出我的建议的正确方向。