zappa scheduling with Python

后端 未结 2 1752
轻奢々
轻奢々 2021-01-22 00:09

I am running this code to send a sms message with Twilio...

client.messages.create(
        to=form.phone.data, 
        from_=\"+1xxxxxxxxxx\",
        body=\"T         


        
相关标签:
2条回答
  • 2021-01-22 00:49

    This isn't something Zappa directly supports at this time. You'll need to perform a hack of some sort around the available scheduling system.

    Schedule an event to run every minute:

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

    Your code can be along these lines.

    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(...)
    
    0 讨论(0)
  • 2021-01-22 00:56

    I made a db driven task queue for zappa. https://github.com/andytwoods/zappa-call-later . Early days, but we are using it in production.

    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.

    0 讨论(0)
提交回复
热议问题