首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为Python中的事件实现提醒功能

为Python中的事件实现提醒功能
EN

Stack Overflow用户
提问于 2021-01-04 11:01:10
回答 1查看 670关注 0票数 0

我已经使用Google Calendar API在Django应用程序中实现了一个事件模块,并且设置了事件的提醒时间,现在我必须在我的应用程序中启动事件之前获得提醒通知,但是只有Google提供的传递机制是

弹出。这些支持在移动平台和web客户端上。 服务器发送的电子邮件。

他们没有提供任何这类功能,我可以从Google得到提醒到我们的应用程序。我尝试过从谷歌日历API的推送通知,但它有不同的功能。

解决方案:--我还有另一种选择,可以使用芹菜拍编写cron作业,但是在特定的时间间隔之后,从数据库检查可能会花费很大的代价,即,是否有时间与事件提醒相匹配,然后推送通知。如果事件数据是大规模的,那是一项繁忙的工作。

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

EN

回答 1

Stack Overflow用户

发布于 2021-01-05 09:24:03

目前Google发布跟踪器上有一个开放的特性请求来添加一个用于提醒日历的API。

在这种情况下,您可以做的是将问题定位为这里,并最终添加一个注释,说明您对此功能的需求。

解决办法

您可以使用Apps脚本的时间驱动触发器,并触发Python脚本的执行。

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

代码

代码语言:javascript
运行
复制
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分钟运行一次,以触发上述函数的执行。

代码语言:javascript
运行
复制
function createTrigger() {
    ScriptApp.newTrigger('getEvents')
        .timeBased()
        .everyMinutes(10)
        .create();
}

参考文献

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

https://stackoverflow.com/questions/65561569

复制
相关文章

相似问题

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