定时处理订阅, 避免 App 内拉取超时
定时处理订阅, 避免 App 内拉取超时
大致逻辑:
定时处理订阅, 进行脚本缓存
在缓存有效期内, Surge 等 App 拉取订阅时就不会超时了
此为 App 版的逻辑. 其他平台使用环境变量
嫌麻烦的话也可以直接使用 Gist 同步配置. 因为这是定时任务, 可以在后台长时间执行. 代理 App 里直接使用 Gist 即可
▎使用
Surge 更新到最新模块后, 可在模块参数设置中设置. 同时别忘了更新外部资源
其他 App 原理一致, 不要问怎么添加, 自己看对应 App 的语法
添加一个定时任务:
注意: 是
如果名称需要
顺序: 并发执行单条订阅, 然后并发执行组合订阅
大致逻辑:
定时处理订阅, 进行脚本缓存
在缓存有效期内, Surge 等 App 拉取订阅时就不会超时了
此为 App 版的逻辑. 其他平台使用环境变量
SUB_STORE_PRODUCE_CRON, 格式为 0 */2 * * *,sub,a;0 */3 * * *,col,b嫌麻烦的话也可以直接使用 Gist 同步配置. 因为这是定时任务, 可以在后台长时间执行. 代理 App 里直接使用 Gist 即可
▎使用
Surge 更新到最新模块后, 可在模块参数设置中设置. 同时别忘了更新外部资源其他 App 原理一致, 不要问怎么添加, 自己看对应 App 的语法
添加一个定时任务:
timeout: 脚本超时时长, 按需调整sub: 自定义需定时处理的单条订阅名, 多个用 , 连接col: 自定义需定时处理的组合订阅名, 多个用 , 连接注意: 是
名称 name 不是 显示名称 displayName 名如果名称需要
encodeURIComponent 编码, 请编码后再用 , 连接顺序: 并发执行单条订阅, 然后并发执行组合订阅
Produce=type=cron,cronexp="50 */6 * * *",timeout=120,script-path=https://github.com/sub-store-org/Sub-Store/releases/latest/download/cron-sync-artifacts.min.js,argument="sub=sub1,sub2&col=col1,col2"
关于缓存时长拉取 Sub-Store 订阅时, 会自动拉取远程订阅
远程订阅缓存是 1 小时, 缓存的唯一 key 为 url+ user agent. 可通过前端的刷新按钮刷新缓存. 或使用参数 noCache 来禁用缓存. 例: 内部配置订阅链接时使用 http://a.com#noCache, 外部使用 sub-store 链接时使用 https://sub.store/download/1?noCache=true
当使用相关脚本时, 若在对应的脚本中使用参数( 别忘了这个, 一般为
cache, 值设为 true 即可)开启缓存, 可设置持久化缓存 sub-store-csr-expiration-time 的值来自定义默认缓存时长, 默认为 172800000 (48 * 3600 * 1000, 即 48 小时)
Loon 可在插件中设置其他平台同理, 持久化缓存数据在 JSON 里
当配合脚本使用时, 可以在脚本的前面添加一个脚本操作, 实现保留 1 小时的缓存
javascript
async function operator() {
scriptResourceCache._cleanup(undefined, 1 * 3600 * 1000);
}
#SubStore #更新记录 #changlog #updates #定时 #cron #produce_cronexp