feat: add restart time for leaking Chromium in Ubuntu (#1880)

docs: add documentation for RESTART_TIME
This commit is contained in:
Ben Curtis
2021-02-07 16:05:53 -05:00
committed by GitHub
parent 2548ca4a74
commit 1009ce6636
4 changed files with 21 additions and 0 deletions
+1
View File
@@ -18,6 +18,7 @@
| `PROXY_PROTOCOL` | Protocol of proxy server, such as `socks5`. Default: `http` |
| `PROXY_ADDRESS` | IP Address or fqdn of proxy server |
| `PROXY_PORT` | TCP Port number on which the proxy is listening for connections. Default: `80` |
| `RESTART_TIME` | Restarts chrome after defined milliseconds. `0` for never, default: `0` |
| `SCREENSHOT` | Capture screenshot of page if a card is found. Default: `true` |
| `WEB_PORT` | Starts a webserver to be able to control the bot while it is running. Setting this value starts this service. |
+1
View File
@@ -88,6 +88,7 @@ PUSHOVER_RETRY=
PUSHOVER_TOKEN=
PUSHOVER_USER=
PUSHOVER_PRIORITY=
RESTART_TIME=
SCREENSHOT=
SHOW_ONLY_BRANDS=
SHOW_ONLY_MODELS=
+3
View File
@@ -439,6 +439,8 @@ const store = {
}),
};
const restartTime = envOrNumber(process.env.RESTART_TIME, 0);
export const defaultStoreData = {
maxPageSleep: browser.maxSleep,
minPageSleep: browser.minSleep,
@@ -453,6 +455,7 @@ export const config = {
page,
proxy,
store,
restartTime,
};
export function setConfig(newConfig: any) {
+16
View File
@@ -13,6 +13,21 @@ puppeteer.use(stealthPlugin());
let browser: Browser | undefined;
async function sleep(ms: number) {
return new Promise(resolve => setTimeout(resolve, ms));
}
/**
* Schedules a restart of the bot
*/
async function restartMain() {
if (config.restartTime > 0) {
await sleep(config.restartTime);
await stop();
loopMain();
}
}
/**
* Starts the bot.
*/
@@ -92,6 +107,7 @@ async function stopAndExit() {
*/
async function loopMain() {
try {
restartMain();
await main();
} catch (error: unknown) {
logger.error(