mirror of
https://github.com/internetarchive/brozzler.git
synced 2025-09-21 05:04:40 -04:00
improved browser ownership locking
This commit is contained in:
parent
ae2c3668a9
commit
e9f6408881
1 changed files with 7 additions and 14 deletions
|
@ -13,8 +13,7 @@ class Umbra:
|
||||||
def __init__(self, websocket_url, amqp_url):
|
def __init__(self, websocket_url, amqp_url):
|
||||||
self.cmd_id = 0
|
self.cmd_id = 0
|
||||||
self.producer = None
|
self.producer = None
|
||||||
self.browser_available = threading.Event()
|
self.browser_lock = threading.Lock()
|
||||||
self.browser_available.set()
|
|
||||||
self.amqp_url = amqp_url
|
self.amqp_url = amqp_url
|
||||||
self.producer_lock = threading.Lock()
|
self.producer_lock = threading.Lock()
|
||||||
self.websocket_url = websocket_url
|
self.websocket_url = websocket_url
|
||||||
|
@ -69,20 +68,14 @@ class Umbra:
|
||||||
|
|
||||||
url = body['url']
|
url = body['url']
|
||||||
|
|
||||||
# claim browser
|
with self.browser_lock:
|
||||||
self.browser_available.wait()
|
self.send_command(method="Network.enable")
|
||||||
self.browser_available.clear()
|
self.send_command(method="Runtime.evaluate", params={"expression":"document.location = '%s';" % url})
|
||||||
|
|
||||||
self.send_command(method="Network.enable")
|
# XXX more logic goes here
|
||||||
self.send_command(method="Runtime.evaluate", params={"expression":"document.location = '%s';" % url})
|
time.sleep(10)
|
||||||
|
|
||||||
# XXX more logic goes here
|
message.ack()
|
||||||
time.sleep(10)
|
|
||||||
|
|
||||||
# release browser
|
|
||||||
self.browser_available.set()
|
|
||||||
|
|
||||||
message.ack()
|
|
||||||
|
|
||||||
class Chrome():
|
class Chrome():
|
||||||
logger = logging.getLogger('umbra.Chrome')
|
logger = logging.getLogger('umbra.Chrome')
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue