ecflow.InLimit

class ecflow.InLimit

Bases: instance

inlimit is used in conjunction with limit to provide simple load management:

suite x
   limit fast 1
   family f
      inlimit /x:fast
      task t1
      task t2

Here ‘fast’ is the name of ecflow.Limit and the number defines the maximum number of tasks that can run simultaneously using this limit. That is why you do not need a trigger between tasks ‘t1’ and ‘t2’. There is no need to change the tasks. The jobs are created in the order they are defined

Constructor:

InLimit(name, optional<path = ''>, optional<token = 1>, optional<limit_this_node_only = false>)
   string name           : The name of the referenced Limit
   string path<optional> : The path to the Limit, if this is left out, then Limit of 'name' must be specified
                           some where up the parent hierarchy
   int value<optional>   : The usage of the Limit. Each job submission will consume 'value' tokens
                           from the Limit. defaults to 1 if no value specified.
   bool limit_this_node_only<optional> : Only limits this node and *NOT* its children
                                         Can be used load balance families

Usage:

inlimit = InLimit('fast','/x/f', 2)
 ...
family = Family('f1',
                InLimit('mars','/x/f', 2)) # create InLimit in Node constructor
family.add_inlimit(inlimit)                # add existing inlimit using function
InLimit.limit_submission((InLimit)arg1) bool :

Limit submission only

InLimit.limit_this_node_only((InLimit)arg1) bool :

Only this node is limited. i.e. typically Family or Suite

InLimit.name((InLimit)arg1) str :

Return the inlimit name as string

InLimit.path_to_node((InLimit)arg1) str :

Path to the node that holds the limit, can be empty

InLimit.tokens((InLimit)arg1) int :

The number of token to consume from the Limit