Skip to main content
Help us improve Python packaging – donate today!

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

Release history Release notifications

This version
History Node

2.0.0

History Node

0.4.1

History Node

0.4.0

History Node

0.3.0

History Node

0.2.2

History Node

0.2.1

History Node

0.2.0

History Node

0.1.0

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
txasgiresource-2.0.0-py2.py3-none-any.whl (20.0 kB) Copy SHA256 hash SHA256 Wheel 3.6 Feb 5, 2018
txasgiresource-2.0.0.tar.gz (9.7 kB) Copy SHA256 hash SHA256 Source None Feb 5, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page