Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal 8-如何从模块重写数据队列_Drupal_Drupal 8 - Fatal编程技术网

Drupal 8-如何从模块重写数据队列

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

我必须重写Drupal8中
数据库队列的默认实现。原因并不重要

我查看了
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()
方法的自定义行为


查看此文档:

非常感谢。这就是我需要的!谢谢。这就是我需要的!