如何解决当包含调度任务的主机在 marklogic 中关闭时,如何将调度任务从集群中的一台主机切换到另一台主机?
我在 marklogic 中的引导节点中安排了一个任务,但主机可能会以某种方式关闭,在这种情况下,我如何将该任务切换到集群中的其他主机。
注意:我一次只能在集群中的一台主机上安排任务。
解决方法
分配计划任务的选项目前是为特定主机设置,或者留空并让它在所有主机上执行。
因此,如果您想确保在主机故障的情况下,任务仍然执行,您可以将主机分配留空并在任务内部添加逻辑以确定应该执行代码的主机,以及其他人成为空手。
如何实现这一目标的一个示例是向任务添加代码以评估 xdmp:host()
是否与开放的 Security 林是同一主机(假设您有 HA-replica安全数据库的森林以确保可用性,但可以通过任何数据库实现)
xquery version "1.0-ml";
let $status := xdmp:database("Security") => xdmp:database-forests() => xdmp:forest-status()
where $status/*:host-id/data() eq xdmp:host()
return
(: this will only execute on the host with the open Security forest:)
"execute task logic"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。