diff --git a/lira/lira.py b/lira/lira.py index 9bba9d26..9a6f13c5 100755 --- a/lira/lira.py +++ b/lira/lira.py @@ -12,6 +12,9 @@ This listener API Lira listens for notifications and start workflows. """ import os +import gevent +import gevent.socket +import socket import json import logging import connexion @@ -64,6 +67,13 @@ 'lira_api.yml', resolver=resolver, validate_responses=True, arguments=arguments ) +# Patch GRPC (used by Google PubSub) to be gevent-compatible: https://github.com/grpc/grpc/issues/4629 +if socket.socket is gevent.socket.socket: + logger.info("Patching GRPC for use with gevent...") + import grpc.experimental.gevent + + grpc.experimental.gevent.init_gevent() + if __name__ == '__main__': app.run(host=args.host, port=args.port) diff --git a/requirements.txt b/requirements.txt index 54b99bba..fc4d81ca 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,9 +1,9 @@ wheel==0.32.3 connexion[swagger-ui]==2.2.0 -google-auth==1.5.0 +google-auth==1.7.1 google-cloud-storage==1.9.0 flask>=1.0.0 -gunicorn==19.9.0 +gunicorn==20.0.4 gevent==1.4.0 requests==2.20.0 requests-mock==1.5.0 @@ -14,5 +14,5 @@ cromwell-tools>=1.1.1, <2 black==19.3b0 flake8==3.7.7 pre-commit==1.14.4 -google-cloud-pubsub==0.39.1 +google-cloud-pubsub==1.0.2 git+git://github.com/HumanCellAtlas/pipeline-tools@v0.58.0