Drupal 8-如何从模块重写数据队列
我必须重写Drupal8中Drupal 8-如何从模块重写数据队列,drupal,drupal-8,Drupal,Drupal 8,我必须重写Drupal8中数据库队列的默认实现。原因并不重要 我查看了QueueFactory,了解到每个队列工作者都可以有不同的QueueInterface实现。如果未指定,则返回到数据库队列(实际上可以指定不同的队列工厂,但这种简化非常准确) QueueFactory使用Settings对象作为队列的配置源: $this->settings->get('queue\u service.'$name,$this->settings->get('queue\u default','queue.d
数据库队列的默认实现。原因并不重要
我查看了QueueFactory
,了解到每个队列工作者都可以有不同的QueueInterface
实现。如果未指定,则返回到数据库队列
(实际上可以指定不同的队列工厂,但这种简化非常准确)
QueueFactory
使用Settings
对象作为队列的配置源:
$this->settings->get('queue\u service.'$name,$this->settings->get('queue\u default','queue.database');
问题是(据我所知),Settings
对象从sites/*/Settings.php
文件获取配置数据。事实上,如果我使用队列配置扩展此文件,如下所示:
$settings['queue\u service\u my\u custom\u queue\u worker']='my\u module.my\u custom\u queue\u factory';
那么它工作得很好
但事情是这样的。我正在创建一个模块,它将分发给许多客户机。这种编辑settings.php
文件的方法并不理想。想象一下,要求每个人都做出这样的改变。它很容易出错。那么,有没有办法从我的模块中扩展这些设置
我尝试使用,但在这种情况下不起作用。您可以修饰队列
服务,为自定义队列提供其get()
方法的自定义行为
请参阅此文档:您可以修饰队列
服务,为自定义队列提供其get()
方法的自定义行为
查看此文档:非常感谢。这就是我需要的!谢谢。这就是我需要的!