Gunicorn - Python间歇性地返回莫名其妙的结果

时间:2016-08-24 17:57:26

标签: python logging gunicorn

我有一个使用Gunicorn的非常基本的网络服务器。回调是本机python函数。以下是回调中app函数的片段。重新启动gunicorn父进程后,有时会使用VOCFE_STATUS_NO_SCHEMA调用raise_error函数,而不会打印其上方的日志行。对于在重新启动之前一直工作的请求,会发生这种情况,并且会发生在生成的所有8个子gunicorn进程中。杀死一个独立的gunicorn子进程会纠正被杀害的孩子的问题 - 请求处理也没问题。

如果重启后第一个请求没有显示问题,则永远不会发生。

同事和我一样缺乏理论,所以任何有效的理论都会帮助我。

if path not in SCHEMA_IGNORANT_PATHS:

         if 'serverState' in body and 'schemaName' in body['serverState']:
             schema = body['serverState']['schemaName']
         elif len (path_bits) > 1:
             schema = path_bits[1]
         else:
             schemas = be_db.select('public.tenant', {}, ['schema_name'])
             if not schemas or len(schemas) == 0:
                 LOG.info("No schema in the tenant table")
                 return raise_error (response_callback, VOCFE_STATUS_NO_SCHEMA)
             if len(schemas) > 1:
                 LOG.info("No client signaled schema, but {} schemas available".format(len(schemas)))
                 return raise_error (response_callback, VOCFE_STATUS_INVALID_SCHEMA)

             schema = schemas[0]['schema_name']

0 个答案:

没有答案