微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Python Django 中实现事件提醒功能 解决方法代码参考

如何解决在 Python Django 中实现事件提醒功能 解决方法代码参考

我已经使用 Google Calendar API 在我们的 Django 应用程序中实现了一个事件模块,并且我已经设置了事件的提醒时间,现在我必须在我的应用程序中开始事件之前获得提醒通知,但是仅由 Google Api 提供的交付机制是

弹出窗口。这些在移动平台和网络客户端上均受支持

服务器发送的电子邮件

而且他们没有提供任何这些类型的功能,我可以从 Google 日历向我们的应用程序发送提醒。我已经尝试过 push notifications 的 Google Calendar API,但它具有不同的功能

解决方案:我有另一种选择来使用 celery beat 来实现这一点,并且可以编写 cron 作业,但在特定时间之后从数据库中检查可能会很昂贵间隔,是否有与事件提醒匹配的时间然后推送通知。如果事件数据是大规模的,那将是一项忙碌的工作。

我正在寻找最佳解决方案或任何提供提醒功能的第三方工具。

解决方法

目前在 Google 问题跟踪器上有一个开放的功能请求,用于为日历的提醒添加 API。

在这种情况下,您可以做的是在问题 here 上加注星标,并最终添加一条评论,说明您对此功能的需求。

解决方法

您可以利用 Apps Script 的时间驱动触发器来触发 Python 脚本的执行。

在这种情况下,您必须在 Apps 脚本中收集事件并检查它们的开始时间。如果开始时间小于事件的开始时间,您将触发 Python 脚本的执行。就 Python 脚本的执行而言,您可以将其托管在私有服务器或云端并触发其执行。

代码

function getEvents() {
    let today = new Date();
    let calendar = CalendarApp.getCalendarById(id);
    let events = calendar.getEventsForDay(today);
    let startTime = today.getHours();
    let params = {
        'method': 'post','headers': {
           'contentType': 'application/json',},'payload':'payload'

    };
    for (let i = 0; i < events.length; i++) {
        if (events[0].getStartTime() <= startTime) {
            UrlFetchApp.fetch('python_script_url',params);
        }
    }
}

为了确保 getEvents 函数被执行,您可以添加一个可安装的时间驱动触发器,它可以每 10 分钟运行一次,例如触发上述函数的执行。

function createTrigger() {
    ScriptApp.newTrigger('getEvents')
        .timeBased()
        .everyMinutes(10)
        .create();
}

参考

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?