Не уверен, что это лучшая практика, но при работе с большими объемами изображений в цикле (т. е. создании и удалении множества объектов Graphics / Image / Bitmap) я регулярно позволяю GC.Collect.
Я думаю, что где-то я читал, что GC работает только тогда, когда программа (в основном) простаивает, а не в середине интенсивного цикла, так что это может выглядеть как область, где может быть полезен ручной GC.
Да, это возможно.
Не знаю, хотите ли вы чего-то подобного, но, для вашего описания, это будет работать для вас ...
- hosts: localhost
vars:
VARIABLE: ""
tasks:
- set_fact:
NEW_VARIABLE: '{{ (VARIABLE |length > 0) | ternary(VARIABLE, "default") }}'
- debug: msg="{{ NEW_VARIABLE }}"
blockquote>PLAY [localhost] ******************************************************************************************************************************************************************************** TASK [Gathering Facts] ************************************************************************************************************************************************************************** ok: [localhost] TASK [set_fact] ********************************************************************************************************************************************************************************* ok: [localhost] TASK [debug] ************************************************************************************************************************************************************************************ ok: [localhost] => { "msg": "default" }
Я предполагаю, что ваша переменная всегда будет определяться как
""
. Предполагая это, можно проверить его длину, а затем использовать троичный фильтр. Если его значение больше 0, он использует значение переменной, а если нет, то установитNEW_VARIABLE
в"default"
. Если вы не знаете, будет ли определенVARIABLE
или нет, поместитеwhen: VARIABLE is defined
в свою задачуset_fact
, и так и должно быть.Источник: Ansible filters