Skip to main content

ASGI implemented as a Twisted resource

Project description

txasgiresource is ASGI implemented as a Twisted Web Resource, very similar to WSGIResource.

This is inspired by Daphne but largely implemented from specs.

It can also run as a daemon with or without the actual application embedded inside.

The code is available on GitHub

Usage

As Twisted Resource

from twisted.web import server

from yourdjangoproject.asgi import channel_layer

resource = ASGIResource(channel_layer)
site = server.Site(resource)

# If we are done with the resource, make sure to stop it.

resource.stop()

As ASGI Protocol server

twistd -n txasgi -c yourdjangoproject.asgi:channel_layer

As ASGI Protocol server with embedded workers

twistd -n txasgi -c yourdjangoproject.asgi:channel_layer -w 6

As ASGI Protocol server with embedded workers and on a different port and ip

twistd -n txasgi -c yourdjangoproject.asgi:channel_layer -w 6 -d tcp:5566:interface=0.0.0.0

Scheduler

The scheduler is built around apscheduler and directly maps to the three schedule-types:

Schedule a job

Channel('schedule').send({
    'method': 'add',
    'id': 'some_unique_job_id',
    'reply_channel': 'schedule.time_to_run',
    'reply_args': {'some', 'reply'},
    'trigger': 'date',
    'run_date': '2009-11-06 16:30:05',
})

Setup channel for the reply

channel_routing = {
    'schedule.time_to_run': 'myapp.consumers.my_consumer',
}

Cancel the job

Channel('schedule').send({
    'method': 'remove',
    'id': 'some_unique_job_id',
})

Status

Master branch

https://coveralls.io/repos/github/JohnDoee/txasgiresource/badge.svg?branch=master https://travis-ci.org/JohnDoee/txasgiresource.svg?branch=master

Develop branch

https://coveralls.io/repos/github/JohnDoee/txasgiresource/badge.svg?branch=develop https://travis-ci.org/JohnDoee/txasgiresource.svg?branch=develop

License

MIT, see LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

txasgiresource-0.4.1.tar.gz (14.0 kB view hashes)

Uploaded Source

Built Distribution

txasgiresource-0.4.1-py2.py3-none-any.whl (21.1 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page