How to set different requestHandlerTimeoutSecs for specific handlers?

I have different handlers in my PuppeteerRouter
export const router = createPuppeteerRouter();

router.addHandler('label-a', async ({ request, page, log, proxyInfo }) => {});

router.addHandler('label-b', async ({ request, page, log, proxyInfo }) => {});
export const router = createPuppeteerRouter();

router.addHandler('label-a', async ({ request, page, log, proxyInfo }) => {});

router.addHandler('label-b', async ({ request, page, log, proxyInfo }) => {});
The question is how do I set different requestHandlerTimeoutSecs for different handlers? E.g. label-a handler would fail after 60 secs timeout and label-b handler would fail after 180 secs timeout
4 Replies
equal-aqua
equal-aqua•2y ago
You can set a high default requestHandlerTimeout for all of them and in your requestHandler you can exit manually: I have different handlers in my PuppeteerRouter
export const router = createPuppeteerRouter({
resquestHandlerTimeoutSecs: 99999 // Notice the time here!
});

router.addHandler('label-a', async ({ request, page, log, proxyInfo }) => {});
export const router = createPuppeteerRouter({
resquestHandlerTimeoutSecs: 99999 // Notice the time here!
});

router.addHandler('label-a', async ({ request, page, log, proxyInfo }) => {});
So, you can set a high timeout for that and then based on a condition, exit earlier.
MEE6
MEE6•2y ago
@Umisyus just advanced to level 7! Thanks for your contributions! 🎉
equal-aqua
equal-aqua•2y ago
I'm not sure if that'll work but, let me know if you still need help.
genetic-orange
genetic-orangeOP•2y ago
Well but the idea is to keep app from having browser open longer than needed. I guess the only option is to have another instance of crawler. But thx anyway.

Did you find this page helpful?