Esempio n. 1
0
def main():

    #setup
    session = SessionFactory.get()
    stmt = update(Request).values(activated=False)
    session.execute(stmt)
    session.commit()
    session.close()

    while True:
        session = SessionFactory.get()
        #Get unactivated request
        pending_request = session.query(Request).filter_by(blocked=False, activated=False)

        #Insert pending request to running queue and set activated flag to True
        for req in pending_request:
            threading.Timer(req.interval_between_checks, handle_request, (req,)).start()

        session.close()
        time.sleep(3)
Esempio n. 2
0
def handle_request(request):

    #create seperate session
    session = SessionFactory.get()

    #Validate that still unblocked
    req = session.query(Request).filter_by(request_id=request.request_id).first()
    if not req.blocked:
        if not req.activated:   #if not active yet, set to activated.
            req.activated = True


        #create result
        req.AddResult(session)
        #print("Req id: {2}, Res id:{0}, activated:{1}\n".format(res.id,req.activated, req.request_id))
        threading.Timer(request.interval_between_checks*5, handle_request, (request,)).start()

    session.close()
Esempio n. 3
0
def unblockRequest(request_id):
    session = SessionFactory.get()
    req = session.query(Request).filter_by(request_id=request_id).first()
    req.block()
    session.commit()