diff --git a/packages/core/net/delegate.ts b/packages/core/net/delegate.ts index 69c2f72..153faed 100644 --- a/packages/core/net/delegate.ts +++ b/packages/core/net/delegate.ts @@ -273,7 +273,7 @@ class NetworkDelegate { } } catch (e) { logger.error(e as Error, "net", "fn:alicloudFcRequest"); - throw new NetSchedulerError(`Unhandled error: Cannot proxy ${url} to ali-fc.`, "ALICLOUD_PROXY_ERR", e); + throw new NetSchedulerError(`Unhandled error: Cannot proxy ${url} to ali-fc-${region}.`, "ALICLOUD_PROXY_ERR", e); } } } diff --git a/packages/crawler/mq/exec/snapshotVideo.ts b/packages/crawler/mq/exec/snapshotVideo.ts index 488f729..ffc3fd3 100644 --- a/packages/crawler/mq/exec/snapshotVideo.ts +++ b/packages/crawler/mq/exec/snapshotVideo.ts @@ -98,6 +98,15 @@ export const snapshotVideoWorker = async (job: Job): Promise => { await scheduleSnapshot(client, aid, type, Date.now() + retryInterval); return; } + else if (e instanceof NetSchedulerError && e.code === "ALICLOUD_PROXY_ERR") { + logger.warn( + `Failed to proxy request for aid ${job.data.aid}: ${e.message}`, + "mq", + "fn:takeSnapshotForVideoWorker", + ); + await setSnapshotStatus(client, id, "failed"); + await scheduleSnapshot(client, aid, type, Date.now() + retryInterval); + } logger.error(e as Error, "mq", "fn:takeSnapshotForVideoWorker"); await setSnapshotStatus(client, id, "failed"); }, async () => {