TutorialΒΆ
For this tutorial we assume you already have loafer
installed and your
aws credentials configured.
Let’s create a repository named foobar
with the following structure:
foobar/
handlers.py
routes.py
__main__.py
__init__.py # empty file
The handlers.py
:
import asyncio
async def print_handler(message, *args):
print('message is {}'.format(message))
print('args is {}'.format(args))
# mimic IO processing
await asyncio.sleep(0.1)
return True
async def error_handler(exc_type, exc, message):
print('exception {} received'.format(exc_type))
# do not delete the message that originated the error
return False
The routes.py
:
from loafer.ext.aws.routes import SQSRoute
from .handlers import print_handler, error_handler
# assuming a queue named "loafer-test"
routes = (
SQSRoute('loafer-test', {'options': {'WaitTimeSeconds': 3}},
handler=print_handler,
error_handler=error_handler),
)
The __main__.py
:
from loafer.managers import LoaferManager
from .routes import routes
manager = LoaferManager(routes=routes)
manager.run()
To execute:
$ python -m foobar
To see any output, publish some messages using AWS dashboard or utilities like awscli.
For example:
$ aws sqs send-message --queue-url http://<url-part>/loafer-test --message-body '{"key": true}'