我当前运行一个守护程序线程,该线程获取所有单元格值,计算是否有更改,然后在循环中写出依赖单元格,即:
def f():
while not event.is_set():
update()
event.wait(15)
Thread(target=f).start()
这可行,但循环的 get-all 调用是重要的 I/O。
如果线程通过 Google Sheets 通知更改,而不是这样做,那么它会干净得多。有没有办法做到这一点?
每当 Google 表格检测到更改时,我就可以通过触发 HTTP 请求来实现此功能。
在 Google 表格上:
function onEdit (e) {
UrlFetchApp.fetch("http://myaddress.com");
}
Python 端(带 Tornado)
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
on_edit()
self.write('Updating.')
def on_edit():
# Code here
pass
app = tornado.web.Application([(r'/', MainHandler)])
app.listen(#port here)
tornado.ioloop.IOLoop.current().start()
我认为这种功能不应该在 gspread 的范围内,但我希望该文档对其他人有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)