while True:
task = TaskQueue.query.filter_by(status=0).order_by(TaskQueue.create_time.asc()).first()
print(task)
if task:
pass
else:
time.sleep(5)
数据表中记录的 status 全部为 0,运行以上代码 持续输出 None ,不中断进程,手动修改数据表中一条记录status=1 以上代码还是照常输出 None 相当于task还是未获取到值,求解?
高洛峰2017-04-18 09:17:53
私は flask_sqlalchemy を使用したことがありません。あなたの考えによると、SQL は次のようになります。作成時間の昇順で最初の status=0 を見つけます。
select * from taskqueue where status=0 order by create_time asc limit 0 、1
理論的には、データテーブルのステータスがすべて 0 であれば、毎回データが存在するはずです。
問題は、ORM が指定されたライブラリに接続されていないか、最初の関数が起動していない可能性があります。
最初にデータが見つかるかどうかを確認することをお勧めします
tasks = TaskQueue.query.filter_by(status=0)
print len(tasks)
どのリンクに問題があるかを判断します