烧瓶用豆茎的使用方法
Flask-Beanstalk的Python项目详细描述
与烧瓶一起使用豆茎的实用程序
客户机
flask_beanstalk.Beanstalk是^{tt2}的简单包装$ 它允许从app.config读取配置。
from flask import Flask from flask_beanstalk import Beanstalk app = Flask(__name__) beanstalk = Beanstalk(app) # or beanstalk.init_app(app)
配置
app.config['BEANSTALK_HOST'] app.config['BEANSTALK_PORT'] app.config['BEANSTALK_PARSE_YAML'] app.config['BEANSTALK_CONN_TIMEOUT']
工人
通过从flask_beanstalk.Worker派生子类来定义和生成工作线程。 flask_beanstalk.Worker继承自gevent.Greenlet但是gevent 是可选的依赖项,以防您只想使用客户端。
import gevent from flask_beanstalk import Worker as _Worker class Worker(_Worker): def run(self, job): self._logger.info('Received: %r' % job.body) job.delete() workers = Worker.spawn_workers(10) try: while True: gevent.sleep(10000) except KeyboardInterrupt: Worker.stop_workers(workers)
试试看
如果您还没有安装并运行beanstalkd。
git clone https://github.com/marksteve/flask-beanstalk.git cd flask-beanstalk mkvirtualenv flask-beanstalk workon flask-beanstalk python setup.py develop python example_worker.py
在另一个终端上:
workon flask-beanstalk python example.py
在浏览器中转到localhost:5000发送作业。 工人应该能够接受并处理它。 在发送sigint之前尝试发送多个作业 对工人说。正在做的工作应该是 在工人关闭之前先处理。