尝试执行一些并行操作时,我收到“尝试读取或写入受保护的内存”的消息。我正在将AutoCad数据库读入内存以进行一些数据挖掘。我可以使用常规for循环执行此操作,但不能使用Parallel.ForEach。有任何想法吗?
Parallel.ForEach(_Files, (currentFile) =>
{
var _File = currentFile;
using (Database _Database = new Database(false, true))
{
_Database.ReadDwgFile(_File, FileOpenMode.OpenForReadAndAllShare, false, null);
_Database.CloseInput(true);
// Do Stuff
}
});
Run Code Online (Sandbox Code Playgroud) 我有 2 个虚拟机,两个虚拟机上都运行着 mongodb。我已经创建了用户和角色并添加了用于测试的数据。一切正常,直到我尝试设置副本集。当我运行 rs.initiate() 时,出现“...replSetHeartbeat 需要身份验证...”错误,如下所示。我可以通过传递 --host "nodeserver-hulk:27017 手动从 "hawkeye" 连接到 "hulk" 服务器。有什么想法吗?
系统
Ubuntu Server 18.04.4 LTS
Mongod v.4.2.3
Run Code Online (Sandbox Code Playgroud)
rs.启动命令
rs.initiate(
{
_id: "r1",
version: 1,
members: [
{ _id: 0, host : "nodeserver-hulk:27017"},
{ _id: 1, host : "nodeserver-hawkeye:27017"}
]
}
)
Run Code Online (Sandbox Code Playgroud)
rs.启动错误
{
"ok" : 0,
"errmsg" : "replSetInitiate quorum check failed because not all proposed set members responded affirmatively: nodeserver-hawkeye:27017 failed with command replSetHeartbeat requires authentication",
"code" : 74,
"codeName" : "NodeNotFound"
}
Run Code Online (Sandbox Code Playgroud)
mongod.conf 文件(两台服务器相同) …
在将文件复制到另一个位置之前,我需要检查文件是否已打开。下面的代码告诉您打开文件时是否显示错误代码 = EBUSY。但如果文件未打开,它将删除文件的内容。有没有更好的方法来获取这些信息。
fs.open('my-file.dwg','w', function(err,data) {
});
Run Code Online (Sandbox Code Playgroud)