在网站中运行后台进程

Posted

技术标签:

【中文标题】在网站中运行后台进程【英文标题】:Running Background Processes in Websites 【发布时间】:2018-02-15 06:17:11 【问题描述】:

我有兴趣在用户访问网站后运行后台进程。我的问题非常广泛,但例如我想每分钟左右轮询一次 JSON API,并在 JSON API 的响应发生变化时向用户发送网络通知。服务人员可以做到这一点吗?我怎样才能做到这一点?

如果这是可能的,那么我是否可以在服务工作者中运行 WebAssembly 文件,以便即使网站未打开,应用程序也可以运行?

或者我可以运行服务工作者来获取网站的最新版本并将其缓存,以便网站在下次访问时立即加载?

【问题讨论】:

请查看此链接,希望对您有所帮助jsfiddle.net/1g88x8z8 【参考方案1】:

无法注册在用户访问网站后无限期继续运行的持久后台进程。

访问网站时可以注册服务工作者。 Service Worker 大部分时间不会运行,但可以被传入的 push notification 等事件“唤醒”,即使用户当前没有打开与您的 Web 应用关联的页面。

按照设计,当 Service Worker 以这种方式被唤醒时,它只会运行一小段时间,然后就会终止。还应向用户发送show a notification,让他们知道正在发生的事情。通过push 事件唤醒但不显示通知的服务工作者可能会发现自己被浏览器禁用。

【讨论】:

以上是关于在网站中运行后台进程的主要内容,如果未能解决你的问题,请参考以下文章

Linux 进程后台运行

如何使用 Worklight 运行后台进程?

Linux系统中暂停正在运行的进程并放入后台

Linux进程后台运行的几种方式

如何让nodejs在linux后台运行

如何检查正在运行的进程是不是是后台进程? [关闭]