如何使用分片管理器从 ShardClientUtil 访问 shardArgs?
How can I access the shardArgs from the ShardClientUtil, using the sharding manager?
我正在使用 Discord.JS 设置一个机器人,并希望将 shardArgs
选项从 ShardingManager
传递到 ShardClient
。如何从 ShardClientUtil
?
访问选项 (shardArgs
)
// ShardManager.js
const Discord = require('discord.js');
const Manager = new Discord.ShardingManager('./Main.js', {
shardArgs: ["shard args to be passed through"]
});
Manager.spawn(1);
我试过使用 .fetchClientValues()
:
// Main.js
const Discord = require('discord.js');
const client = new Discord.Client();
client.shard.fetchClientValues('manager.shardArgs')
.then(results => {
console.log(results);
})
.catch(console.error);
client.login("token");
我尝试了很多不同的东西,我什至在调试器中检查了对象,但我找不到 shardArgs
所以我不确定我应该从哪里访问它。
我预计 shardArgs
为 "shard args to be passed through"
,而目前我得到 null
。
shardArgs
实际上传递了一点:
- 先到
Shard
的构造函数
- 然后到
Shard#spawn
- 最后到
child_process.fork
(这将启动分片的进程)
您可以通过 process.argv
访问分片中的数组。 (不需要IPC)
请注意,第一个条目是可执行文件(节点),第二个是正在执行的文件 (Main.js),第三个及以上条目是您的数组。
例如,在您的 Main.js
文件中记录 process.argv
可能会记录:
['usr/bin/node', '/home/bot/Main.js', 'shard args to be passed through']
我正在使用 Discord.JS 设置一个机器人,并希望将 shardArgs
选项从 ShardingManager
传递到 ShardClient
。如何从 ShardClientUtil
?
shardArgs
)
// ShardManager.js
const Discord = require('discord.js');
const Manager = new Discord.ShardingManager('./Main.js', {
shardArgs: ["shard args to be passed through"]
});
Manager.spawn(1);
我试过使用 .fetchClientValues()
:
// Main.js
const Discord = require('discord.js');
const client = new Discord.Client();
client.shard.fetchClientValues('manager.shardArgs')
.then(results => {
console.log(results);
})
.catch(console.error);
client.login("token");
我尝试了很多不同的东西,我什至在调试器中检查了对象,但我找不到 shardArgs
所以我不确定我应该从哪里访问它。
我预计 shardArgs
为 "shard args to be passed through"
,而目前我得到 null
。
shardArgs
实际上传递了一点:
- 先到
Shard
的构造函数 - 然后到
Shard#spawn
- 最后到
child_process.fork
(这将启动分片的进程)
您可以通过 process.argv
访问分片中的数组。 (不需要IPC)
请注意,第一个条目是可执行文件(节点),第二个是正在执行的文件 (Main.js),第三个及以上条目是您的数组。
例如,在您的 Main.js
文件中记录 process.argv
可能会记录:
['usr/bin/node', '/home/bot/Main.js', 'shard args to be passed through']