Skip to content

Instantly share code, notes, and snippets.

@rwatkins
Created May 31, 2019 23:30
Show Gist options
  • Save rwatkins/d4be489d87e629b40c5d468cf76a5a40 to your computer and use it in GitHub Desktop.
Save rwatkins/d4be489d87e629b40c5d468cf76a5a40 to your computer and use it in GitHub Desktop.
import threading
import logging
import time
from pony.orm import db_session
from models import Position
@db_session
def get_position_and_set_title():
p = Position[174]
p.title = p.title
#commit()
return p
sleep_t = 55
@db_session
def worker(i):
logging.info('{} getting position...'.format(i))
p = get_position_and_set_title()
logging.info('{} got position {}'.format(i, p))
logging.info('{} querying position.company...'.format(i))
t = time.time()
try:
logging.info('{} company.name={}'.format(i, p.company.name))
finally:
logging.info('{} waited for {}s'.format(i, time.time() - t))
logging.info('{} sleeping {}s'.format(i, sleep_t))
time.sleep(sleep_t)
logging.info('{} done'.format(i))
threads = []
for i in range(2):
th = threading.Thread(target=worker, args=(i,))
threads.append(th)
th.start()
for th in threads:
th.join()
logging.info('time to execute: {}s'.format(time.time() - t))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment