知识合集

哈喽,我是颜sir,询盘自由网背后的人。做网络营销快6年,运气不错,实现了财务自由,目前全职在家钻研更多赚钱方法。在钻研过程中,我发现网上几乎找不到优质的中文资源。我深知新手入门需经历痛苦挣扎,所以创建了询盘自由网,把我知道的分享给你。

Cloudflare Workflows 和 Queues 怎么选?

多步骤流程该用 Workflows 还是 Queues?这篇讲两者的核心差别是谁持有流程状态,以及怎样用 Queues 接入、用确定的实例 ID 做免费去重。

Workers 的绑定(binding)是什么?

绑定把连接串换成配置里声明过的能力,代码通过 env 拿到已授权的对象。这篇讲清绑定的模型、wrangler.jsonc 的最小骨架和类型生成。

wrangler dev 本地和线上有什么差别?

wrangler dev 默认在本机用本地模拟跑 Worker,绑定也是模拟的。这篇讲清本地、remote 绑定和 --remote 的区别,以及 .dev.vars 与 .env 的优先级。

wrangler 的环境为什么不继承绑定?

wrangler 的 env 里 name、main 等字段可继承,绑定类字段不可继承,漏写的绑定在运行时才变成 undefined。这篇讲清规则、症状和 deploy 时的默认行为。

Workers 里 vars 和 secrets 有什么区别?

在 Worker 代码里 vars 和 secrets 都是 env.X,区别只在可见性。这篇讲清该放哪个、secret 怎么写入,以及 secrets.required 和变量限额。

Effect AI 的 AiError 怎么映射成领域错误?

AiError 只是一个壳,真正的信息在带 _tag 的 reason 里。用一个没有 default 的 switch 把十八种 reason 映射成四种领域错误,provider 新增 reason 时编译期就会报错。

LLM 调用的重试和超时,顺序该怎么排?

用 Schedule 写指数退避加抖动,以 provider 给的 retryAfter 为下限,只重试 isRetryable 的错误;timeout 放在 retry 里面是每次尝试的预算,放外面是总预算。

怎么不调用真实 API 测试 Effect AI 的调用?

用 LanguageModel.make 只实现 provider 那一层,回放一段脚本,再配合 TestClock,就能在不发任何网络请求的情况下测重试、错误映射和耗尽行为。

Effect.all 默认是并发执行的吗?

Effect.all 和 Effect.forEach 默认是顺序执行,不写 concurrency 就没有并发。反过来 "unbounded" 又会把所有任务同时放出去,forkDetach 则会让任务脱离父 fiber。

Effect.retry 怎么重试才不算盲目重试?

对任何错误无间隔地重试五次,只是在重复失败,还可能压垮已经过载的服务。重试前要先给错误分类,只重试瞬时错误,并配上退避和上限。

Effect.promise 和 Effect.tryPromise 该用哪个?

Effect.promise 假定 Promise 不会 reject,一旦 reject 就成了类型里看不见的缺陷。会失败的外部调用该用 tryPromise,并在 catch 里翻译成带标签的错误。

Effect 的 ManagedRuntime 是什么?

ManagedRuntime 把一个装配好的 Layer 变成可复用的运行环境,适合宿主自己拥有主循环的场景。这篇讲它何时构建、为什么必须 dispose,以及热重载下的妥协。

Effect 怎么接入 Cloudflare Workers?

Workers 的环境绑定随每个请求而来,所以依赖要按生命周期分成两类。这篇讲清哪些放模块级 runtime、哪些在 fetch 里提供,以及 Effect.succeed 的求值时机陷阱。

Effect.catchFilter 怎么同时匹配并提取错误?

catchTag 只认 _tag,catchIf 只认布尔,而真实的错误匹配常常既要判断又要取值。这篇讲清 Filter 与 Effect.catchFilter 怎么把「判断加提取」做成可组合的值。

Effect 的 Filter 除了 catchFilter 还能用在哪?

Filter 不只给 catchFilter 用,数组、Option、Stream 上都有对应的用法。这篇讲清哪些 API 收 Filter,哪些只收布尔谓词,传错会发生什么。

怎么用 catchReasons 处理 HttpClientError?

用 Effect.catchReasons 按 StatusCodeError、TransportError 分别恢复 HttpClientError:404 当作不存在,传输失败当作离线,其余状态码继续失败。