Nearly six months ago, we posted about a new feature in Zappa: Asynchronous Task Execution.

With this week's release of 0.44, Zappa now offers the ability to capture the output from these asynchronous tasks, with very little extra configuration.

In that introduction post, we told you "this should be useful for anybody who needs to execute long running tasks via API calls, massively execute tasks in parallel", but back then there was no way to fetch the results of those asynchronous tasks.

Now there is.

Let's get back to baking:

With this example, we can bake a large number of things in a short amount of time. Each of these things takes 1 to 10 seconds to bake, but that doesn't mean that our request takes up to 10 seconds per item.

Consider this sample run:

We did 67s worth of baking in less than 11 seconds, and we even found out what we baked.

Zappa Settings

To use this functionality, you'll need to configure zappa_settings.json with a few new values:

This lets Zappa create and use a DynamoDB table, and set up its capacity.

Thanks!

As with the earlier post about asynchronous jobs, result capturing is very fresh code, so please use it at your own risk for now, and please file bug reports and pull requests if you find room for improvement.

News, announcements and commentary from Zappa, Python's server-less framework.

Build Status

PyPI

Slack

Patreon

Star

Made by Gun.io