如何以正确的方式创建分片队列管?

问题描述

假设我们有基于Tarantool墨盒的服务,该服务存储用户发表的帖子。当用户发布新帖子时,它将被插入到相应的空间。同时在分片队列notify_friends添加了任务,用于通知用户朋友新帖子。

问题与管notify_friends的创建有关。最初,我计划在服务角色的init()方法中执行此操作,但是它会导致错误,因为管道创建会修改clusterwide-config,并且在运行init()时会对其进行更改。 我可以尝试在第一个任务添加请求时创建试管,但是不确定这是否是最佳方法

解决方法

我可以通过2种方式使用它:

  1. 根据您的建议在第一个请求上创建试管。没什么不好的。
  2. 如果要提前进行,请在init函数中创建光纤,如果初始化后不存在,则在初始化10秒后尝试创建该光纤。您可以找出所有具有sharded_queue存储的实例,并仅在第一个实例上运行光纤(按实例URI的字母顺序排序)。
,

您可以将其置于应用程序的“默认配置”。

在这里检查: How to implement default config section for a custom Tarantool Cartridge role?