concurrently running instances of chromium are fucking each other up

This commit is contained in:
Bla 2023-10-27 16:43:12 +00:00
parent 5ec387e097
commit 5a3d7aa5c9

View file

@ -91,7 +91,7 @@ def ids():
l = filter(idIsRecent,list(valuestore.keys())) l = filter(idIsRecent,list(valuestore.keys()))
return ','.join(map(str,list(l))) return ','.join(map(str,list(l)))
def createDriver(): def createDriver(id):
options = webdriver.ChromeOptions() options = webdriver.ChromeOptions()
options.add_argument('--headless') options.add_argument('--headless')
options.add_argument("--incognito") options.add_argument("--incognito")
@ -101,7 +101,15 @@ def createDriver():
options.add_argument("--no-sandbox") options.add_argument("--no-sandbox")
options.add_argument("--enable-javascript") options.add_argument("--enable-javascript")
options.add_argument('--disable-dev-shm-usage') options.add_argument('--disable-dev-shm-usage')
data_dir = "--user-data-dir=/tmp/" + str(id)
options.add_argument(data_dir)
try:
driver = webdriver.Chrome(options=options) driver = webdriver.Chrome(options=options)
except selenium.common.exceptions.SessionNotCreatedException:
sleep(10)
driver = createDriver(id)
return driver
driver.response_interceptor = interceptor driver.response_interceptor = interceptor
return driver return driver
@ -115,7 +123,7 @@ if __name__ == '__main__':
restartWait = timedelta(hours=4) restartWait = timedelta(hours=4)
# setup webdriver # setup webdriver
d0 = createDriver() d0 = createDriver(0)
# start initial driver # start initial driver
d0.get('https://dus-travis.dus.com/') d0.get('https://dus-travis.dus.com/')
@ -125,14 +133,14 @@ if __name__ == '__main__':
while True: while True:
sleep(30) sleep(30)
if datetime.now(timezone.utc) > lastaccess + restartWait: if datetime.now(timezone.utc) > lastaccess + restartWait:
d1 = createDriver() d1 = createDriver(1)
d1.get('https://dus-travis.dus.com/') d1.get('https://dus-travis.dus.com/')
print ("New Failover Driver started, waiting 10 seconds ...") print ("New Failover Driver started, waiting 10 seconds ...")
sleep(10) sleep(10)
killChildren(d0) killChildren(d0)
del d0 del d0
print ("Original driver deleted") print ("Original driver deleted")
d0 = createDriver() d0 = createDriver(0)
d0.get('https://dus-travis.dus.com/') d0.get('https://dus-travis.dus.com/')
print ("Recreating original driver and waiting 10 seconds ...") print ("Recreating original driver and waiting 10 seconds ...")
sleep(10) sleep(10)