ravvi
ravvi

Reputation: 137

how to switch a schedule task from one host to other in a cluster, when host that contain the schedule task is down in marklogic?

I scheduled a task in a bootstrap node in marklogic and but there might be chance that the host will down ,somehow ,in that case how I switched that task to other host in the cluster.

Note: I have to schedule the task only on a single host at a time from the cluster.

Upvotes: 1

Views: 82

Answers (1)

Mads Hansen
Mads Hansen

Reputation: 66783

The options for assigning scheduled tasks are currently to set for a specific host, or to leave empty and have it execute on all hosts.

So, if you want to ensure that in the event of a host failure, the task is still executed, you could leave the host assignment empty and add logic inside of the task to determine which host should execute the code, and the others become a no-op.

An example of how to achieve that is to add code to the task to evaluate whether the xdmp:host() is the same host with the open Security forest (assuming that you have HA-replica forest for your Security DB to ensure availability, but could be achieved with any database)

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"

Upvotes: 2

Related Questions