queue
Output of --help=queue
The following help text is generated by ecflow_client --help=queue
queue
-----
QueueCmd. For use in the '.ecf' script file *only*
Hence the context is supplied via environment variables
Argument(s):
queue-name: string
# The name of the queue to be used.
action: string
# [active | aborted | complete | no_of_aborted | reset ]
# active: returns the first queued/aborted step, the return string is the queue value from the definition
# no_of_aborted: returns number of aborted steps as a string, i.e 10
# reset: sets the index to the first queued/aborted step. Allows steps to be reprocessed for errors
step: string
# The value returned from `step=$(ecflow_client --queue=queue_name active)`
# This is only valid for complete and aborted steps
path: (optional) string
# The path where the queue is defined.
# By default we search for the queue up the node tree.
If this task command is a zombie, then the default action will be to *block*,
The default can be overridden by using zombie attributes.
If the path to the queue is not defined, then this command will
search for the queue up the node hierarchy. If no queue found, command fails
Usage:
step=""
QNAME="my_queue_name"
while [1 == 1 ] ; do
# this return the first queued/aborted step, then increments to next step, return <NULL> when all steps processed
step=$(ecflow_client --queue=$QNAME active) # of the form string i.e "003". this step is now active
if [[ $step == "<NULL>" ]] ; then
break;
fi
...
ecflow_client --queue=$QNAME complete $step # tell ecflow this step completed
done
trap() { ecflow_client --queue=$QNAME aborted $step # tell ecflow this step failed }
The client considers, for both user and task commands, the following environment variables:
ECF_HOST <string> [mandatory*]
The main server hostname; default value is 'localhost'
ECF_PORT <int> [mandatory*]
The main server port; default value is '3141'
ECF_SSL <any> [optional*]
Enable secure communication between client and server.
ECF_HOSTFILE <string> [optional]
File that lists alternate hosts to try, if connection to main host fails
ECF_HOSTFILE_POLICY <string> [optional]
The policy ('task' or 'all') to define which commands consider using alternate hosts.
The options marked with (*) must be specified in order for the client to communicate
with the server, either by setting the environment variables or by specifying the
command line options.
The following environment variables are used specifically by task commands:
ECF_NAME <string> [mandatory]
Full path name to the task
ECF_PASS <string> [mandatory]
The job password (defined by the server, and used to authenticate client requests)
ECF_TRYNO <int> [mandatory]
The run number of the job (defined by the server, and used in job/output file name generation).
ECF_RID <string> [mandatory*]
The process identifier. Supports identifying zombies and automated killing of running jobs
ECF_TIMEOUT <int> [optional]
Maximum time in *seconds* for client to deliver message to main server; default is 24 hours
ECF_DENIED <any> [optional]
Allows task to exit with an error, upon connection failure, thus avoids ECF_TIMEOUT's wait.
NO_ECF <any> [optional]
If set, ecflow_client exits immediately with success; useful to test the scripts without a server
The scripts are expected to export the mandatory variables, typically in shared include files
See also
Protocol reference for QueueCmd — the request/reply payloads exchanged with the server and the C++ command class that implements this command.