如何退出在Flask应用中调用的python脚本?

时间:2019-05-29 22:56:16

标签: python python-2.7 flask

我有一个flask应用程序,在其中我正在python脚本(poll_servers.py)中重用函数。我可以导入该函数并运行它,但是我想对它进行检查,如果它正在运行,则退出该函数。

这是我在python脚本中的代码:

import os
import sys

# check if lock file exists, exit
if os.path.exists('static/poll.lock'):
    sys.exit(1)

if not os.path.exists('static/poll.lock'):
    with open('static/poll.lock', 'w'): pass

在我的app.py中,我有:

from poll_servers import poll

@app.route('/poll_servers', methods=['GET'])
def poll_servers():

    response = json.dumps({'status':'OK'})

    poll()

    return response

我在poll_servers.py的sys.exit(1)上遇到错误:

File "app.py", line 109, in poll_servers
  poll()
File ".../poll_servers.py", line 262, in poll
  sys.exit(1)
File ".../venv/lib/python2.7/site.py", line 403, in __call__
  raise SystemExit(code)
SystemExit: None

有什么想法吗?如果我自己运行poll_servers.py,则sys.exit(1)可以正常工作。

1 个答案:

答案 0 :(得分:0)

然后什么也不做,也不会翻转if语句的顺序:

import os
import sys

if not os.path.exists('static/poll.lock'):

    with open('static/poll.lock', 'w'): 

        pass

else:

    pass
    # do something