예제 #1
0
def test_wait_any_terminated():
    session_name = generate_random_string()
    js = JobSession(session_name)
    ja = js.run_bulk_jobs({'remote_command': '/bin/sleep', 'args': ['5']}, 1, 10, 5, 2)
    jl = ja.job_list
    jl_ids = list(map(lambda j: j.id, jl))
    print('\nWaiting on termination of any job with id from %s' % jl_ids)
    j = js.wait_any_terminated(jl)
    assert (j.id in jl_ids)
    print('Job %s terminated' % j)
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#
# See the License for the specific language governing permissions and
# limitations under the License.
#######################################################################################
# ___INFO__MARK_END__

from drmaa2 import JobSession

if __name__ == '__main__':
    js = JobSession('js-01')
    print('Created job session: %s' % js.name)
    d = {'remote_command': '/bin/sleep', 'args': ['10']}
    print('Running job array using dictionary: %s' % d)
    begin_index = 1
    end_index = 10
    step = 2
    max_parallel = 2
    ja = js.run_bulk_jobs(d, begin_index, end_index, step, max_parallel)
    print('Submitted job array: %s' % ja)
    print('Waiting for any job to terminate')
    jl = ja.job_list
    j = js.wait_any_terminated(jl)
    print('Job %s terminated' % j)