Crew
AMQP based worker/master pattern framework
Install / Use
/learn @mosquito/CrewREADME
CREW
AMQP based RPC library for Tornado
Use cases
- Task queue
- Load balancing for different CPU-bound HTTP handlers
- ... other systems which involve RPC
Installation
::
pip install crew
Example
See the full example_.
Usage +++++
For example create your first app, and save as master.py::
import tornado.ioloop
import tornado.gen
import tornado.web
import tornado.log
import json
import tornado.options
from crew import TimeoutError, ExpirationError
from crew.master.tornado import Client
class MainHandler(tornado.web.RequestHandler):
@tornado.gen.coroutine
def get(self):
resp = yield self.settings['crew'].call(None, priority=100)
self.write(json.dumps(resp))
cl = Client()
application = tornado.web.Application(
[
(r"/", MainHandler),
],
crew=cl,
autoreload=True,
debug=True,
)
if __name__ == "__main__":
cl.connect()
tornado.options.parse_command_line()
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
And create your first task, and save as worker.py::
# encoding: utf-8
from crew.worker import run, context, Task
@Task('test')
def long_task(req):
context.settings.counter += 1
return {"counter": context.settings.counter}
run(
counter=0
)
After that run it::
$ python master.py &
$ python worker.py &
$ wait
Try to test it::
$ curl http://localhost:8888/
.. _example: https://github.com/mosquito/crew/tree/master/example
Related Skills
node-connect
353.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
353.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
353.3kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
