3

我正在运行此代码以向 Twilio 发送短信...

client.messages.create(
        to=form.phone.data, 
        from_="+1xxxxxxxxxx",
        body="This is a text message"

我的应用程序使用 Python 的 Zappa 托管在 AWS Lambda 上。问题是我需要能够安排此消息在未来 10 分钟内发送。

Zappa 提供任务执行,但他们的文档不清楚应该如何完成这样的事情。

谢谢您的帮助。

4

2 回答 2

5

这不是 Zappa 目前直接支持的东西。您需要围绕可用的调度系统执行某种破解。

安排一个事件每分钟运行一次:

{
    "production": {
       ...
       "events": [{
           "function": "your_module.send_msg", // The function to execute
           "expression": "rate(1 minute)" // When to execute it (in cron or rate format)
       }],
       ...
    }
}

您的代码可以遵循这些原则。

from datetime import datetime

def send_msg():
    form = get_form()
    elapsed = datetime.now() - form.date_created 
    if 10 < abs(elapsed.total_seconds())/60) < 11: # this is naive
        client.messages.create(...)
于 2017-05-26T20:26:29.513 回答
1

我为 zappa 创建了一个数据库驱动的任务队列。https://github.com/andytwoods/zappa-call-later。早期,但我们正在生产中使用它。

Every X minutes, (as suggested in @Oluwafemi Sule's answer) a Zappa event pings a function that checks for tasks. Tasks can be delayed Y minutes, repeated Z times etc.

My solution is crude in that it has low time resolution, and is quite low level currently.

于 2017-08-16T20:07:15.793 回答