import datetime
from threading import Timer
import firebase_admin
from firebase_admin import firestore
import calendar
db = firestore.Client()
col_ref = db.collection(u'tblAssgin').get()
current_serving = [doc.id for doc in col_ref]
#print(current_serving)
def sit_time():
for i in current_serving:
try:
doc_ref = db.collection(u'tblAssgin').document(i)
except:
current_serving.remove(doc_ref)
else:
doc = doc_ref.get()
a = doc.get('assginTime')
assign_time = datetime.datetime.fromtimestamp(calendar.timegm(a.timetuple()))
now = datetime.datetime.now()
sitting_time = now - assign_time
hours,remainder = divmod(sitting_time.seconds, 3600)
minutes, seconds = divmod(remainder, 60)
print('minutes:',minutes)
updates = {u'sitting_time':minutes}
doc_ref.update(updates)
t = None
def refresh():
global t
sit_time()
t = Timer(60, refresh)
t.daemon = True
t.start()
refresh()
Таким образом, в основном вышеприведенный код делает так, что он сначала выбирает все идентификаторы документа с именем коллекции 'tblAssgin' и сохраняет его в списке 'current_serving'. Затем зацикливается на каждом документе, вычисляет время и запускается снова через каждые 60 секунд. Теперь предположим, что я удалил один документ, тогда этот документ не будет найден. Поэтому я хочу сделать это, когда документ не найден, возникает исключение, и этот идентификатор документа удаляется из списка «current_serving». Но исключение не поймано.
Пожалуйста, помогите
Заранее спасибо .. !!