From 17a3ddc2d684e5acbb3679d6502cdb510b5c3de2 Mon Sep 17 00:00:00 2001 From: Nicolas Joubert Date: Thu, 1 Oct 2026 09:17:09 +0200 Subject: [PATCH] cleverage/cache-process-bundle#30, cleverage/cache-process-bundle#31, cleverage/cache-process-bundle#32 - Add demo processes, remove cache placeholders Co-Authored-By: Claude Opus 5.5 (1M context) --- .../process/demo.cache.get_invalid_input.yaml | 3 +- .../process/demo.cache.get_on_miss.yaml | 52 +++++++++++++++++++ .../process/demo.cache.set_expires_after.yaml | 44 ++++++++++++++++ .../packages/process/demo.cache.set_get.yaml | 4 +- .../demo.cache.set_invalid_input_option.yaml | 4 +- .../process/demo.cache.set_invalid_key.yaml | 22 ++++++++ 6 files changed, 121 insertions(+), 8 deletions(-) create mode 100644 config/packages/process/demo.cache.get_on_miss.yaml create mode 100644 config/packages/process/demo.cache.set_expires_after.yaml create mode 100644 config/packages/process/demo.cache.set_invalid_key.yaml diff --git a/config/packages/process/demo.cache.get_invalid_input.yaml b/config/packages/process/demo.cache.get_invalid_input.yaml index 798b47c..78a278d 100644 --- a/config/packages/process/demo.cache.get_invalid_input.yaml +++ b/config/packages/process/demo.cache.get_invalid_input.yaml @@ -16,8 +16,7 @@ clever_age_process: get: service: '@CleverAge\CacheProcessBundle\Task\GetTask' options: - adapter: 'memory' - key: '' # Overridden by the input + adapter: 'memory' # key is given by the input outputs: [ debug ] debug: diff --git a/config/packages/process/demo.cache.get_on_miss.yaml b/config/packages/process/demo.cache.get_on_miss.yaml new file mode 100644 index 0000000..c2bb8c5 --- /dev/null +++ b/config/packages/process/demo.cache.get_on_miss.yaml @@ -0,0 +1,52 @@ +clever_age_process: + configurations: + demo.cache.get_on_miss: + description: > + Cache-aside with GetTask on_miss: skip (cleverage/cache-process-bundle#31): a missing key sends the + input to the error outputs, which compute the value and store it. key1 is computed the first time, + then read from the cache + help: > + Ex: bin/console cleverage:process:execute demo.cache.get_on_miss + tasks: + keys: + service: '@CleverAge\ProcessBundle\Task\ConstantIterableOutputTask' + options: + output: + - key: 'key1' + - key: 'key2' + - key: 'key1' + outputs: [ get ] + + get: + service: '@CleverAge\CacheProcessBundle\Task\GetTask' + options: + adapter: 'memory' # key is given by the input + on_miss: skip + outputs: [ found ] + error_outputs: [ compute ] + + found: + service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask' + + compute: + service: '@CleverAge\ProcessBundle\Task\TransformerTask' + options: + transformers: + mapping: + mapping: + key: + code: '[key]' + value: + code: '[key]' + transformers: + sprintf: + format: 'computed %s' + outputs: [ set, computed ] + + set: + service: '@CleverAge\CacheProcessBundle\Task\SetTask' + options: + adapter: 'memory' # key and value are given by the input + + computed: + service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask' diff --git a/config/packages/process/demo.cache.set_expires_after.yaml b/config/packages/process/demo.cache.set_expires_after.yaml new file mode 100644 index 0000000..9a30dc0 --- /dev/null +++ b/config/packages/process/demo.cache.set_expires_after.yaml @@ -0,0 +1,44 @@ +clever_age_process: + configurations: + demo.cache.set_expires_after: + description: > + SetTask expires_after (cleverage/cache-process-bundle#32): the item is stored for 1 second, it is found + right after, and missing after a 2 seconds pause + help: > + Ex: bin/console cleverage:process:execute demo.cache.set_expires_after + tasks: + set: + service: '@CleverAge\CacheProcessBundle\Task\SetTask' + options: + adapter: 'memory' + key: 'short_lived' + value: 'short lived value' + expires_after: 1 + outputs: [ get_before, wait ] + + get_before: + service: '@CleverAge\CacheProcessBundle\Task\GetTask' + options: + adapter: 'memory' + key: 'short_lived' + on_miss: fail + outputs: [ debug ] + + wait: + service: '@CleverAge\ProcessBundle\Task\TransformerTask' + options: + transformers: + constant: + constant: 2 + sleep: ~ + outputs: [ get_after ] + + get_after: + service: '@CleverAge\CacheProcessBundle\Task\GetTask' + options: + adapter: 'memory' + key: 'short_lived' + outputs: [ debug ] + + debug: + service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask' diff --git a/config/packages/process/demo.cache.set_get.yaml b/config/packages/process/demo.cache.set_get.yaml index 00b27b0..58aa0e5 100644 --- a/config/packages/process/demo.cache.set_get.yaml +++ b/config/packages/process/demo.cache.set_get.yaml @@ -46,9 +46,7 @@ clever_age_process: set: service: '@CleverAge\CacheProcessBundle\Task\SetTask' options: - adapter: 'memory' - key: '' # overrided by input' - value: '' # overrided by input + adapter: 'memory' # key and value are given by the input get: service: '@CleverAge\CacheProcessBundle\Task\GetTask' diff --git a/config/packages/process/demo.cache.set_invalid_input_option.yaml b/config/packages/process/demo.cache.set_invalid_input_option.yaml index b7140a2..6cb85c4 100644 --- a/config/packages/process/demo.cache.set_invalid_input_option.yaml +++ b/config/packages/process/demo.cache.set_invalid_input_option.yaml @@ -19,6 +19,4 @@ clever_age_process: set: service: '@CleverAge\CacheProcessBundle\Task\SetTask' options: - adapter: 'memory' - key: '' # Overridden by the input - value: ~ # Overridden by the input + adapter: 'memory' # key and value are given by the input diff --git a/config/packages/process/demo.cache.set_invalid_key.yaml b/config/packages/process/demo.cache.set_invalid_key.yaml new file mode 100644 index 0000000..fe978a9 --- /dev/null +++ b/config/packages/process/demo.cache.set_invalid_key.yaml @@ -0,0 +1,22 @@ +clever_age_process: + configurations: + demo.cache.set_invalid_key: + description: > + SetTask with a key containing a PSR-6 reserved character (cleverage/cache-process-bundle#30): the key is + rejected by the task, also with --no-debug / in production (Symfony adapters only validate keys with + assert()) + help: > + Ex: bin/console cleverage:process:execute demo.cache.set_invalid_key + tasks: + item: + service: '@CleverAge\ProcessBundle\Task\ConstantOutputTask' + options: + output: + key: 'ABC/001' + value: 'value1' + outputs: [ set ] + + set: + service: '@CleverAge\CacheProcessBundle\Task\SetTask' + options: + adapter: 'memory' # key and value are given by the input