sitegeist/scentmark

Installs: 2 190

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 4

Forks: 0

Open Issues: 0

Type:neos-package

v1.0.1 2023-06-12 12:31 UTC

This package is auto-updated.

Last update: 2024-03-13 10:27:47 UTC


README

Mark and Sniff on Neos via CLI. This can help to optimize cache flushing in Cluster Environments with a green / blue caching or publishing setup wehere certain tasks like cache flushing or publishing of static resources shall only be excuted on the first container of an newly deployed app version.

Usage

The package contains two cli commands:

  • ./flow scentmark:mark __mark__ Store the given scent in the ScentCache

  • ./flow scentmark:sniff __mark__ Compare the cached scent with the stored value and return an error code if both do not match.

Example

  1. Configure ScentCache to be shared across containers.

Caches.yaml

Sitegeist_ScentMark_ScentCache:
  backend: 'Neos\Cache\Backend\RedisBackend'
  1. Adjust the container spinup script

start.sh:

./flow scentmark:sniff $APP_VERSION

// tasks to run on the first pod/container of a release
if [ $? -ne 0 ]; then
    // mark the cluster with the new release 
    ./flow scentmark:mark $APP_VERSION

    // flush caches ... ensure they are configured with green / blue backends
    ./flow flow:cache:flushone Neos_Fusion_Content
    ./flow flow:cache:flushone Flow_Mvc_Routing_Route
    ./flow flow:cache:flushone Flow_Mvc_Routing_Resolve
    ./flow flow:cache:flushone Flowpack_FullPageCache_Entries
fi
  1. Configure flow to switch with every cache between Green / Blue caching environment
  2. Ensure the current APP_VERSION is available in the containers

Authors & Sponsors

The development and the public-releases of this package is generously sponsored by our employer http://www.sitegeist.de.

Installation

Sitegeist.ScentMark is available via packagist. Run composer require sitegeist/scentmark to require this package.

We use semantic-versioning so every breaking change will increase the major-version number.

Contribution

We will gladly accept contributions. Please send us pull requests.