首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >处理PHP和Python之间的通用XML文件

处理PHP和Python之间的通用XML文件
EN

Stack Overflow用户
提问于 2019-03-25 05:23:14
回答 2查看 53关注 0票数 0

我正在Raspberry Pi Zero的一个项目中工作,使用apache作为web服务器。该网站是用PHP编写的,它根据用户的输入更新服务器中的XML文件。还有一个python程序程序与web服务器并行运行。这个python程序读取XML并从XML中获取值,将它们存储在本地并检查其中的变化,如果有任何变化,它将与外部设备执行一些UART通信,有时基于这些来自设备的外部通信,python还会更新XML。

Python每2秒读取一次XML,有时问题是,当python执行读取操作时,如果用户探查输入,并且PHP将新值插入到相同的XML中,python就会崩溃。客户端希望将2秒的延迟减少到.1秒,这意味着Python会快速读取,并且任何来自PHP的更改都会使其崩溃。

有没有办法在python和PHP之间建立某种文件锁,这样,当Python正在读取或写入PHP时,以及如果PHP正在编写Python时,都会等待。Python优先于PHP。

EN

回答 2

Stack Overflow用户

发布于 2019-03-25 05:58:39

您可以避免每2秒读取一次,只需检查文件是否已修改,而不是对该文件执行读取或写入操作。这在某种程度上是优化的方式。

代码语言:javascript
复制
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler


class MyHandler(FileSystemEventHandler):
    def on_modified(self, event):
        print(f'event type: {event.event_type}  path : {event.src_path}')


if __name__ == "__main__":
    event_handler = MyHandler()
    observer = Observer()
    observer.schedule(event_handler, path='YOUR_DIR_PATH_TO_WATCH', recursive=False)
    observer.start()

    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()

或者分享你的代码和错误。说得更清楚些。

票数 0
EN

Stack Overflow用户

发布于 2019-03-25 06:02:14

最好先有一个api调用,它会提示数据当前是否正在更改,以及最后一次数据更改的时间。通过这种方式,您可以避免由于共享资源而导致的崩溃

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55328712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档