mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
add async fire-forget/check functionality
This commit is contained in:
parent
e36a8d466e
commit
76814089ae
2 changed files with 23 additions and 1 deletions
|
@ -56,6 +56,28 @@ Alternatively, if you do not need to wait on the task to complete, you may
|
|||
Using a higher value for ``--forks`` will result in kicking off asynchronous
|
||||
tasks even faster. This also increases the efficiency of polling.
|
||||
|
||||
If you would like to perform a variation of the "fire and forget" where you
|
||||
"fire and forget, check on it later" you can perform a task similar to the
|
||||
following::
|
||||
|
||||
---
|
||||
# Requires ansible 1.7+
|
||||
- name: 'YUM - fire and forget task'
|
||||
yum: name=docker-io state=installed
|
||||
async: 1000
|
||||
poll: 0
|
||||
register: yum_sleeper
|
||||
|
||||
- name: 'YUM - check on fire and forget task'
|
||||
async_status: jid={{ yum_sleeper.ansible_job_id }}
|
||||
register: job_result
|
||||
until: job_result.finished
|
||||
retries: 30
|
||||
|
||||
.. note::
|
||||
If the value of ``async:`` is not high enough, this will cause the
|
||||
"check on it later" task to fail because the temporary status file that
|
||||
the ``async_status:`` is looking for will not have been written
|
||||
|
||||
.. seealso::
|
||||
|
||||
|
|
|
@ -80,7 +80,7 @@ def main():
|
|||
except Exception, e:
|
||||
if data == '':
|
||||
# file not written yet? That means it is running
|
||||
module.exit_json(results_file=log_path, ansible_job_id=jid, started=1)
|
||||
module.exit_json(results_file=log_path, ansible_job_id=jid, started=1, finished=0)
|
||||
else:
|
||||
module.fail_json(ansible_job_id=jid, results_file=log_path,
|
||||
msg="Could not parse job output: %s" % data)
|
||||
|
|
Loading…
Reference in a new issue