您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

与Flask服务器同时运行while循环

与Flask服务器同时运行while循环

使用多进程在Flask HTTP请求的不同进程中运行循环:

import time
from flask import Flask, jsonify
from multiprocessing import Process, Value


app = Flask(__name__)


tasks = [
   {
      'id': 1,
      'title': u'Buy groceries',
      'description': u'Milk, Cheese, Pizza, Fruit, Tylenol', 
      'done': False
   },
   {
      'id': 2,
      'title': u'Learn Python',
      'description': u'Need to find a good Python tutorial on the web', 
      'done': False
   }
]


@app.route('/todo/api/v1.0/tasks', methods=['GET'])
def get_tasks():
   return jsonify({'tasks': tasks})


def record_loop(loop_on):
   while True:
      if loop_on.value == True:
         print("loop running")
      time.sleep(1)


if __name__ == "__main__":
   recording_on = Value('b', True)
   p = Process(target=record_loop, args=(recording_on,))
   p.start()  
   app.run(debug=True, use_reloader=False)
   p.join()

任务部分来自这里,来自我的多处理代码。 注意“ use_reloader = False”部分。这是避免两次运行循环所必需的。由于这个原因,请看这里

可以通过使用以下命令启动服务器来测试功能

python <your_name_for_the example>.py

并打电话

curl -i http://localhost:5000/todo/api/v1.0/tasks
Python 2022/1/1 18:23:42 有333人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶