i run
drush status
Drupal version : 11.0.9
Site URI : http://default
DB driver : mysql
DB port :
DB username : mysite_drupal_user
DB name : mysite_drupal
Database : Connected
Drupal bootstrap : Successful
Default theme : olivero
Admin theme : claro
PHP binary : /usr/bin/php
PHP config : /usr/local/etc/php8/php.ini
PHP OS : Linux
PHP version : 8.4.1
Drush script : /srv/my.app/vendor/bin/drush.php
Drush version : 13.3.3.0
Drush temp : /tmp
Drush configs : /srv/my.app/vendor/drush/drush/drush.yml
Install profile : standard
Drupal root : /srv/my.app/web
Site path : sites/default
Files, Public : sites/default/files
Files, Private : /srv/drupal/private
Files, Temp : /var/lib/wwwrun/tmp/drupal/mysite
i've installed
drush pm:list | grep -i redis -A1
Performance Redis (redis) Enabled
composer show | grep -i redis
drupal/redis dev-1.x 89f56c5 Integration of Drupal with the Redis key-value store.
with documented config, it's up & running; i can see Drupal keys in my Redis instance, e.g.
valkey-cli -s /run/valkey/valkey.sock -n 3 keys "*"
1) "dev__:discovery:entity_field_map"
2) "dev__:config:core.base_field_override.comment.comment.comment_type"
3) "dev__:config:core.base_field_override.comment.comment.thread"
4) "dev__:discovery:views:access"
5) "dev__:config:system.action.user_block_user_action"
6) "dev__:default:core.extension.list.theme"
7) "dev__:config:last_write_timestamp_cache_config"
...
Production requirement here includes use of 'reliable' redis queues.
Redis package docs @
`web/modules/contrib/redis/README.md`
state
...
Queue Backend
------------------------------------
This module provides reliable and non-reliable queue implementations. Depending
on which is to be use you need to choose "queue.redis" or "queue.redis_reliable"
as a service name.
When you have configured basic information (host, library, ... - see Quick setup)
add this to your settings.php file:
# Use for all queues unless otherwise specified for a specific queue.
$settings['queue_default'] = 'queue.redis';
# Or if you want to use reliable queue implementation.
$settings['queue_default'] = 'queue.redis_reliable';
...
setting/enabling EITHER one of those in `settings.php` generates this `ServiceNotFoundException` fatal error
The website encountered an unexpected error. Try again later.
Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException: Service "queue.redis_reliable" not found: the container inside "Drupal\Core\Queue\QueueFactory" is a smaller service locator that only knows about the "queue.database" service. in Symfony\Component\DependencyInjection\ServiceLocator->createNotFoundException() (line 137 of /srv/my.app/vendor/symfony/dependency-injection/ServiceLocator.php).
Symfony\Component\DependencyInjection\ServiceLocator->doGet('queue.redis_reliable') (Line: 43)
Symfony\Component\DependencyInjection\ServiceLocator->get('queue.redis_reliable') (Line: 68)
Drupal\Core\Queue\QueueFactory->get('update_fetch_tasks') (Line: 119)
Drupal\update\UpdateProcessor->__construct(Object, Object, Object, Object, Object, Object, Object, Object) (Line: 259)
Drupal\Component\DependencyInjection\Container->createService(Array, 'update.processor') (Line: 177)
Drupal\Component\DependencyInjection\Container->get('update.processor', 1) (Line: 430)
Drupal\Component\DependencyInjection\Container->resolveServicesAndParameters(Array) (Line: 237)
Drupal\Component\DependencyInjection\Container->createService(Array, 'update.manager') (Line: 177)
Drupal\Component\DependencyInjection\Container->get('update.manager') (Line: 197)
Drupal::service('update.manager') (Line: 273)
update_get_available() (Line: 38)
update_requirements('runtime')
call_user_func_array(Object, Array) (Line: 416)
Drupal\Core\Extension\ModuleHandler->{closure:Drupal\Core\Extension\ModuleHandler::invokeAll():415}(Object, 'update') (Line: 395)
Drupal\Core\Extension\ModuleHandler->invokeAllWith('requirements', Object) (Line: 415)
Drupal\Core\Extension\ModuleHandler->invokeAll('requirements', Array) (Line: 109)
Drupal\system\SystemManager->listRequirements() (Line: 93)
Drupal\system\SystemManager->checkRequirements() (Line: 122)
Drupal\system\Controller\SystemController->overview('system.admin_config')
call_user_func_array(Array, Array) (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->{closure:Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber::wrapControllerExecutionInRenderContext():121}() (Line: 593)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 121)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->{closure:Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber::onController():96}() (Line: 183)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 53)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28)
Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32)
Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36)
Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 709)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
this seems (?) to originate with these changes
The settings.php method to set the queue backend was deprecated in 10.1
https://www.drupal.org/project/queue_unique/issues/3434071
📌
Automated Drupal 11 compatibility fixes for queue_unique
Needs review
Convert QueueFactory to use a service locator
https://www.drupal.org/project/drupal/issues/3416357
📌
Convert QueueFactory to use a service locator
Fixed
Refactor QueueFactory to get queue backend service from QueueWorker plugin instead of Settings
https://www.drupal.org/node/2821989 →
@ Slack, i'm told it's known non-functional, broken and a bug, and to file a new issue here. hence, this ...
whether a solution is simply clear docs to follow, or additional changes are needed, i don't yet know