2 秒ごとに 1 回データベースからデータをフェッチし、結果を複数のスレッドを作成して返されたデータを処理する関数に渡すスクリプトを実行しています。
私のクエリは、両方ともデータベースでマークされているアイテムを返しis_deleted = False
ます。以下のコードでは、データベースに 1 つのメンバーがあり、それらを削除済みとしてマークしたり、実際に削除したりした場合、 がmember.get_member()
で処理する「なし」を返すことを期待していif statement
ます。ただし、問題は、スクリプトが既に実行されている間にそのメンバーをデータベースから削除しても、「データ」が返され、「なし」が返されることです。スクリプトを停止して再度実行すると、「なし」が返されるため、正しいデータがフェッチされます
sqlAlchemy 0.8でPython3.2を実行しています
def main():
while True:
time.sleep(2)
member = Member()
myData, instance_counter = member.get_member()
if myData == None:
print("No member registered yet:", get_time_now())
else:
myqueuing(instance_counter, myData)
dbase.session.commit()
if __name__ == '__main__':
main()