| import logging | |||||
| import psycogreen.gevent as pscycogreen_gevent # type: ignore | |||||
| from grpc.experimental import gevent as grpc_gevent # type: ignore | |||||
| _logger = logging.getLogger(__name__) | |||||
| def _log(message: str): | |||||
| print(message, flush=True) | |||||
| # grpc gevent | |||||
| grpc_gevent.init_gevent() | |||||
| _log("gRPC patched with gevent.") | |||||
| pscycogreen_gevent.patch_psycopg() | |||||
| _log("psycopg2 patched with gevent.") | |||||
| from app import app, celery | |||||
| __all__ = ["app", "celery"] |
| CONCURRENCY_OPTION="-c ${CELERY_WORKER_AMOUNT:-1}" | CONCURRENCY_OPTION="-c ${CELERY_WORKER_AMOUNT:-1}" | ||||
| fi | fi | ||||
| exec celery -A app.celery worker -P ${CELERY_WORKER_CLASS:-gevent} $CONCURRENCY_OPTION \ | |||||
| exec celery -A celery_entrypoint.celery worker -P ${CELERY_WORKER_CLASS:-gevent} $CONCURRENCY_OPTION \ | |||||
| --max-tasks-per-child ${MAX_TASKS_PER_CHILD:-50} --loglevel ${LOG_LEVEL:-INFO} \ | --max-tasks-per-child ${MAX_TASKS_PER_CHILD:-50} --loglevel ${LOG_LEVEL:-INFO} \ | ||||
| -Q ${CELERY_QUEUES:-dataset,mail,ops_trace,app_deletion,plugin,workflow_storage,conversation} | -Q ${CELERY_QUEUES:-dataset,mail,ops_trace,app_deletion,plugin,workflow_storage,conversation} | ||||
| import psycogreen.gevent as pscycogreen_gevent # type: ignore | |||||
| from grpc.experimental import gevent as grpc_gevent # type: ignore | |||||
| def post_fork(server, worker): | |||||
| # grpc gevent | |||||
| grpc_gevent.init_gevent() | |||||
| server.log.info("gRPC patched with gevent.") | |||||
| pscycogreen_gevent.patch_psycopg() | |||||
| server.log.info("psycopg2 patched with gevent.") |