如何以正确的方式创建分片队列管?
How to create sharded-queue tube the right way?
假设我们有基于 Tarantool Cartridge 的服务,它存储 post 用户制作的内容。当用户创建一个新的 post 时,它被插入到相应的 space 中。同时在 sharded-queue tube notify_friends
中添加了通知用户朋友新 post.
的任务
问题是关于创建管 notify_friends
。最初我计划在服务角色的 init()
方法中执行此操作,但它会导致错误,因为管创建修改了 clusterwide-config 并且它在 init()
运行时被更改。
我可以尝试在第一个任务添加请求时创建管,但不确定这是否是最佳方法。
我有两种方法:
- 按照您的建议在第一个请求上创建管。不会有什么不好的事情发生。
- 如果您想提前执行 - 在 init 函数中创建一个 fiber,如果管不存在,它将在初始化后 10 秒后尝试创建管。您可以计算出所有具有 sharded_queue 存储空间的实例,并且 运行 仅在第一个实例上有纤程(按实例 URI 的字母顺序排序)。
您可以将其设置为应用程序的“默认配置”。
在这里查看:
假设我们有基于 Tarantool Cartridge 的服务,它存储 post 用户制作的内容。当用户创建一个新的 post 时,它被插入到相应的 space 中。同时在 sharded-queue tube notify_friends
中添加了通知用户朋友新 post.
问题是关于创建管 notify_friends
。最初我计划在服务角色的 init()
方法中执行此操作,但它会导致错误,因为管创建修改了 clusterwide-config 并且它在 init()
运行时被更改。
我可以尝试在第一个任务添加请求时创建管,但不确定这是否是最佳方法。
我有两种方法:
- 按照您的建议在第一个请求上创建管。不会有什么不好的事情发生。
- 如果您想提前执行 - 在 init 函数中创建一个 fiber,如果管不存在,它将在初始化后 10 秒后尝试创建管。您可以计算出所有具有 sharded_queue 存储空间的实例,并且 运行 仅在第一个实例上有纤程(按实例 URI 的字母顺序排序)。
您可以将其设置为应用程序的“默认配置”。
在这里查看: