I am using cx Oracle and schedule module in python. Following is the psuedo code.
import schedule,cx_Oracle
def db_operation(query):
    '''
    Some DB operations like
    1. Get connection
    2. Execute query
    3. commit result (in case of DML operations)
    '''
schedule.every().hour.at(":10").do(db_operation,query='some_query_1')    # Runs at 10th minute in every hour
schedule.every().day.at("13:10").do(db_operation,query='some_query_2')   # Runs at 1:10 p.m every day
Both the above scheduled jobs calls the same function (which does some DB operations) and will coincide at 13:10.
Questions:
- So how does the scheduler handles this scenario? Like running 2 jobs at the same time. Does it puts in some sort of queue and runs one by one even though time is same? or are they in parallel?
- Which one gets picked first? and if I would want the priority of first job over second, how to do it?
- Also, important thing is that at a time only one of these should be accessing the database, otherwise it may lead to inconsistent data. How to take care of this scenario? Like is it possible to put a sort of lock while accessing the function or should the table be locked somehow?
 
    