如何解决从一台 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 举报,一经查实,本站将立刻删除。