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

从一台 Flask 服务器运行 APScheduler 和 twilio webhook

如何解决从一台 Flask 服务器运行 APScheduler 和 twilio webhook

我目前正在使用 Twilio 创建 SMS 消息服务,但我也希望它能够在特定时间自行发送文本。我正在考虑使用 APScheduler 来做到这一点,但还没有让它发挥作用。

这是我目前所拥有的:

from flask import Flask,request
import requests
from twilio.twiml.messaging_response import MessagingResponse
from apscheduler.schedulers.background import BackgroundScheduler

app = Flask(__name__)
scheduler = BackgroundScheduler()


@app.route('/bot',methods=['POST'])
def bot():
    print("received incoming POST")
    incoming_msg = request.values.get('Body','').lower()
    resp = MessagingResponse()
    msg = resp.message()
    responded = False
    if 'quote' in incoming_msg:
        # return a quote
        r = requests.get('https://api.quotable.io/random')
        if r.status_code == 200:
            data = r.json()
            quote = f'{data["content"]} ({data["author"]})'
        else:
            quote = 'I Could not retrieve a quote at this time,sorry.'
        msg.body(quote)
        responded = True
    if 'cat' in incoming_msg:
        # return a cat pic
        msg.media('https://cataas.com/cat')
        responded = True
    if not responded:
        msg.body('I only kNow about famous quotes and cats,sorry!')
    return str(resp)

async def job():
    print('hi')

scheduler.add_job(job,"interval",seconds=3)
scheduler.start()


if __name__ == '__main__':
    app.run()

当我运行它时,我能够发送和接收文本,但是“hi”打印会导致错误消息:RuntimeWarning: coroutine 'job' was never awaited。有人对解决错误或使用不同的堆栈来执行此功能有什么建议吗?

非常感谢!

解决方法

我刚刚通过删除工作职能的 async 部分使其工作。

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