Gspread - 更改监听器?

2023-11-30

我当前运行一个守护程序线程,该线程获取所有单元格值,计算是否有更改,然后在循环中写出依赖单元格,即:

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(使用前将#替换为@)

Gspread - 更改监听器? 的相关文章

随机推荐

  • 如何使用检测打印 Java 运行时调用的所有方法?

    我想打印出在运行时调用的所有方法 它们应该按照调用的顺序打印出来 如果多次调用它们 则应该打印多次 这可用于逆向工程 查看当您按下按钮或执行特定操作时调用哪些函数 我想为此使用 Java 代理和仪器 这可以使用 Java 代理和检测库来完成
  • 在 vbscript 中逐字节读取文件

    我正在寻找一种使用 VBScript 大 1 GB 读取大二进制文件的方法 我无法直接读取它ReadAll因为文件太大 所以我正在寻找一种在循环中读取它的方法 就像在 C 中一样 所以我想读取 X 个字节 处理它们 我不需要完整的文件来完成
  • MySQL单语句合并两个表

    我确信这个问题已经被问过 回答了 但我不知道这种操作是如何调用的 而且我的 SQL 知识是有限的 我正在寻找一个 SQL 语句来合并两个表 表用户 ID hash 1 abc 2 def 3 ghi 和 USER FIELD 表 ID us
  • 我可以阻止 iPhone OS 3.x 应用程序在 2.x 操作系统上运行吗?

    我不希望我的应用程序在运行 3 0 之前的任何操作系统的 iPhone 或 iPod 上运行 我的印象是应用程序商店会帮我处理这个问题 但我认为事实并非如此 提醒用户然后退出的最佳方法是什么 最好是 我希望在用户购买我的应用程序之前发生这种
  • 从 firebase 中的数组获取值[重复]

    这个问题在这里已经有答案了 我想从数组字段中获取值 但我收到一个错误 没有为类型 Object 定义运算符 文档 尝试定义运算符 from this codevar followSitesList value data followedSi
  • 部署在 apache 服务器上的 Dash 失败并显示“Dash 对象不可调用”

    我正在尝试将 python dash 应用程序部署到我的 apache 服务器 我遵循了我能找到的有关此配置的少量信息 官方文档 这个故障排除线程好一点 当我访问该网站时 页面返回一个500 Internal Server Error 被描
  • 将配置参数保存到存储库

    我刚刚开始使用 git ftp 它允许我将提交推送到 FTP 服务器 FTP 凭据以这种方式存储在 git config 中 git ftp user myusername url ftp myserver com httpdocs pas
  • 使用 MailGun 快速发送电子邮件

    Problem 我想使用MailGun从纯 Swift 应用程序发送电子邮件的服务 迄今为止的研究 据我了解 有两种发送电子邮件的方法通过邮件枪 一种是向 MailGun 发送电子邮件 MailGun 将重定向它 请参阅通过 SMTP 发送
  • Mongodb:在 find() 中使用 $or 时返回匹配的过滤器

    假设我在 Mongodb 中进行这样的查询 db user find or field1 abc field2 def field3 ghi 并且返回了一些文件 了解三个过滤器中的哪一个 或多个 与返回的每个文档匹配的最简单方法是什么 通过
  • 如何点击整个vuejs组件

    我有组件 我想点击后运行方法
  • 对于没有空字符的字符串,如何计算 strlen?

    此代码返回 n 11 第 10 个和第 11 个字符为 和 这是如何运作的 strlen函数如何将其视为11个字符 在某些编译器中似乎将字符串长度视为 12 个字符 include
  • 将大量提交推送到 GitHub 会导致致命写入错误:文件描述符错误

    我使用 GitHub 来管理我的存储库 在尝试推送大型提交 1 5 GB 时遇到以下错误 error pack objects died of signal 9 fatal The remote end hung up unexpected
  • 从谷歌地图中的标记中删除默认的鼠标悬停工具提示

    我创建了一个用于显示标记信息窗口弹出窗口的应用程序 该应用程序工作正常 弹出窗口显示正确 但唯一的解决方案是 与鼠标悬停时的自定义信息窗口弹出窗口一起 带有 html 标签的默认弹出窗口是显示如下图所示 JSFiddle 谁能告诉我一些解决
  • angularjs:每个页面都有不同的元标记

    我已经使用 ruby on Rails 和 angularjs 使用 JS 和 Jquery 开发了网站 我只是想知道是否可以为 angularjs 中的每个页面使用不同的元标记 根据我的说法 任何爬虫都只会检测服务器端生成的元标记 因此
  • Azure Blob SAS 和 Cache-Control 确保资源得到缓存

    我们提供存储在 Azure Blob 容器上的私有资源 图像 文件等 安全性是使用以下方式实现的共享访问签名 为每个资源请求创建 例如 两个请求意味着两个不同的访问令牌 一般来说 安全 URL 由文件名和作为查询字符串传递的令牌组成 例如
  • 解决 n 皇后难题

    我刚刚解决了python中的nqueen问题 该解决方案输出在 nXn 棋盘上放置 n 个皇后的解决方案总数 但尝试使用 n 15 需要一个多小时才能得到答案 任何人都可以看一下代码并给我一些加速这个程序的技巧 一个新手Python程序员
  • 如何使用由 AJAX/PHP 填充的 DropDownList 中选定值的值

    我有两个下拉列表的表单 假设 A 和 B 当我从 A 中选择一个值时 将使用 AJAX 相应地填充 B 在同一页面中 我有一个按钮 按下该按钮时 会将下拉列表中所选项目的值发布到另一个 PHP 页面 我遇到的问题是 B 的选定值返回为空白
  • 如何检索 BigQuery 嵌套记录的动态嵌套键列表

    我的 ELT 工具在 bigquery 中导入我的数据 并自动生成 扩展动态嵌套键的架构 在下面的架构中 在properties 看起来像这样 如何获取重复记录的嵌套键列表 例如 当这些项目表示属性非空时 我可以按属性进行分组 我努力了 s
  • 无法解析以下类的超类型。请确保类路径中具有所需的依赖项:

    我无法编译 Android Kotlin 项目 我最近将应用程序从纯 Java 更新为 Kotlin 我只在单个 Activity 上完成了此操作 但我无法运行该项目 摇篮日志 e 无法解析以下类的超类型 请确保类路径中具有所需的依赖项 c
  • Gspread - 更改监听器?

    我当前运行一个守护程序线程 该线程获取所有单元格值 计算是否有更改 然后在循环中写出依赖单元格 即 def f while not event is set update event wait 15 Thread target f star