Статус исчезает при обновлении во время работы скриптов (чтение и запись одновременно не происходит)

Во время работы этого скрипта, если какой-либо продукт помечен как критический, то он не обновляется, а сбрасывается обратно на некритический

Итак, как выполнять операции чтения и записи одновременно?

def get_latest_comment_from_xsite( curs, how_far_back ): print "start app get latest comment after %0.2f seconds" % ( time.time() - start )

>
# minutes_back = 24*60
print "Going back %0.2f minutes" % (how_far_back)
                

sql = """
    WITH ORDERED AS
    (
        SELECT 
            eh.equipmentname,
            to_date(eh.time,'YYYYMMDD HH24MISS\"000\"') AS \"TIME\",
            NVL(eh.workordernumber,eh.workrequestnumber ) AS \"WORKORDERNUMBER\",
            eh.username,
            DBMS_LOB.SUBSTR(ec.detaildescription,1700,1) AS \"COMMENTTEXT\",
            ROW_NUMBER() OVER (PARTITION BY eh.equipmentname ORDER BY eh.equipmentname ASC) AS rn
        FROM FwEqpHistory eh, 
            FwEqpComment ec 
        WHERE 
            ec.sysId (+) = eh.eqpComment 
       
            AND ec.detaildescription NOT LIKE 'Marked as critical%'
            AND ec.detaildescription NOT LIKE 'Removed from critical%'
          
            AND eh.time > TO_CHAR(sysdate - {0}*((1.0/24.0)/60.0),'YYYYMMDD HH24MISS')||'000'
        ORDER BY
            1, 2 desc)
            SELECT * FROM ORDERED WHERE rn = 1""".format(how_far_back)

print sql
curs.execute(str(sql))
comments = curs.fetchall()

print "Collected app Data after %0.2f seconds" % ( time.time() - start )

for row in comments:
    tool_id, comment_time, wo_number, user_id, comment_text, row_num = row
    print tool_id + ' ' + str( comment_time) + ' ' + user_id + ' ' + comment_text
    
    try: 
        status = CurrentStatus.objects.get(table_name = tool_id)
        if ( status.title_updated_at == None or status.title_updated_at < comment_time ):
           
            status.title_updated_at = comment_time
            if len(comment_text) < 1000:
                status.title = comment_text
            else:
                status.title = comment_text[0:999]
            status.save()
    except CurrentStatus.DoesNotExist:
        print 'ERROR: Tool ' + tool_id + ' exists in app ; but not in app'
        continue
    except DatabaseError as e:
        print traceback.format_exc()
    except Exception:
        print traceback.format_exc()
return comments
Вернуться на верх