Dans le cadre des workers, ce n’est pas grave de bloquer les tâches car ils ne doivent, de toute façon, traiter qu’une chose à la fois puisque ce sont des files d’attente.
Il est facile d’utiliser l’ORM de django en dehors de django, il suffit de faire :
from django.conf import settings
settings.configure(la config de base de données)
from ton_app.models import TonModel
Et ça marche tout seul, à condition que ton PYTHON PATH soit ok.
Mais oui, tu as raison, dans beaucoup de cas on peut se contenter du push.
Dans tous les cas, ça ne peut pas encore “fitter smoothly together” parce que :
– WAMP est très jeune. On a besoin de vous pour dev l’écosystème. Viendez :)
– ce sont des technos fondamentalement incompatibles par nature. On essaye donc de faire rentrer un carré dans un trou rond. On va limer les bords avec le temps, mais ça ne se fera pas du jour au lendemain.
J’avais tester de mélanger bottle+gevent+gevent-websocket mais je ne suis pas arrivé a qqchose de satisfaisant ;-(
]]>
from autobahn.twisted.wamp import Application
wamp = Application('demo')
@wamp.register()
def toto(param):
return "hello world "+param
#========================================================
from bottle import request, Bottle, abort, static_file
app = Bottle()
@app.get("/")
def hello():
return """hello"""
@app.route('/:path')
def static(path):
return static_file(path, root='.')
from twisted.web.server import Site
from twisted.web.wsgi import WSGIResource
from twisted.internet import reactor
reactor.listenTCP(8000,Site(WSGIResource(reactor,reactor.getThreadPool(),app)))
wamp.run()
Mais, comme dit, faut pas faire du bloquant, côté WSGI …
]]>There is a project called Telegraphy, which is based on Autobahn/WAMP, and seems to go in the direction outlined:
* https://pypi.python.org/pypi/telegraphy
* https://github.com/machinalis/telegraphy/
I haven’t had a deep look into it though .. it’s using an old Autobahn with WAMP1.
]]>