[低优先] CronJob 应配合 chrome.alarm 避免长期占有offscreen
CronJob 里没用到 chrome.alarm
所以是用 offscreen 不断跑吗?
我本来是打算处理 chrome.alarm 的问题 (避免手提电脑resume时多个alarm即时引发)
但发现只用到四个alarm
定时任务不是用 chrome.alarm 跑的话, 非常依赖offscreen吧 倒过来用 chrome.alarm 的话,就不用offscreen跑时间器
2025/11/09
- exclude second based cronjob.
- bucket alarm - 1m 5m 15m 60m 1d
- if trigger time is within the same minute (+-65s), then execute
- default no "catch up missed runs"
- add
@crontab-catch-up-missed-runs=> provide a numbercrontab_missed_runs= 0, 1, 2, 3 ...
在offscreen依靠 crontab 这个库处理的,不用 chrome.alarm 主要有两个原因,一个是crontab表达式需要转换成 chrome.alarm,且chrome.alarm不能支持到秒级(虽然这个好像没有很强的需求),另外就是延用老的架构
https://github.com/scriptscat/scriptcat/blob/5e7c077ef250e1b8eef5662bc416b82d62927b52/src/app/service/sandbox/runtime.ts#L206-L208
实际应用应该是以小时作单位吧 这样的话 chrome.alaram 会比较合适 (不用长期保持一个 offscreen占内存)
由于刻度不一样 (alarm 不适用于一分钟以内的刻度)
应该会做一个类似但不同的新meta (不改现有的 @crontab )
日后有时间的话,加这个新meta 功能,你能接受吗
(当然这也考虑到 firefox MV3 的兼容) (用 alarm 做定时器的代码我是有啦)
实际应用应该是以小时作单位吧 这样的话 chrome.alaram 会比较合适 (不用长期保持一个 offscreen占内存)
由于刻度不一样 (alarm 不适用于一分钟以内的刻度) 应该会做一个类似但不同的新meta (不改现有的
@crontab)日后有时间的话,加这个新meta 功能,你能接受吗
(当然这也考虑到 firefox MV3 的兼容) (用 alarm 做定时器的代码我是有啦)
实际也不好说呀,也有其它的功能依赖offscreen的,始终还是要开启(offscreen中才能使用eval之类执行脚本)
关于@crontab后续可能再增加一下语义化的表达式,例如 every day/hour,但是修改架构使用alarm暂时还是别了,目前来看没有必要,先将现有内容和问题稳定下来吧(虽然我最开始也是想的使用alarm去做,在电脑休眠情况下crontab因为依赖setTimeout这个库似乎有些问题,但是一直没去处理)