Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
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

Develop branch

License

MIT, see LICENSE

Release History

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.

File Name & Hash SHA256 Hash Help Version File Type Upload Date
txasgiresource-2.0.0-py2.py3-none-any.whl
(20.0 kB) Copy SHA256 Hash SHA256
3.6 Wheel Feb 5, 2018
txasgiresource-2.0.0.tar.gz
(9.7 kB) Copy SHA256 Hash SHA256
Source Feb 5, 2018

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting