【问题标题】:Can I log MS Insights calls in a separate thread?我可以在单独的线程中记录 MS Insights 调用吗?
【发布时间】:2020-02-11 14:15:23
【问题描述】:

我有控制台应用,我使用 Microsoft 洞察,但发送事件或异常的速度很慢,所以我想在不同的线程上发送洞察。

let worker = new Worker(__dirname + '/insights.js');
worker.on('message', (msg) => { 
                console.log("First value is: ", msg);

//in worker
let a = 10000000000;
while(a > 1){
    a--;
}
parentPort.postMessage(a);

我尝试使用工作线程,但这对我没有帮助。它们同步工作。 例如,我创建新的工作人员并在那里运行循环

我能否以某种方式将事件并行发送到见解中并同时继续运行其他代码?

【问题讨论】:

  • 欢迎来到 SO!我做了一些小的语法和语法修复,使问题更容易阅读和查找。希望你早日找到答案!
  • 您能否发布您在工作程序运行时尝试运行的代码以及您如何使用 App Insights SDK 发送事件?发送数据应该不会对性能产生重大影响,并且使用工作人员会大大增加准确发送遥测数据的复杂性,因此我不推荐它。
  • 子进程有帮助...但不完全

标签: javascript c# .net .net-core azure-application-insights


【解决方案1】:

我更改了 index.js 中的代码,现在我使用以下代码:

function sendLog(functionName, obj , commandName = ''){     
    const cp = require('child_process');
    const subprocess = cp.fork( __dirname + '/insights.js', [], {
        detached: true,
        stdio: [ 'ignore', 'ignore', 'ignore', 'ipc' ]
      });
    subprocess.send({function:functionName, obj: obj, commandName: commandName, UUID : uuid, scriptName: roundCommand});
    subprocess.unref();
}

在insights.js 中我跟踪事件。它工作正常,我可以在后台发送日志。 但是,当在我的 index.js 中执行命令时,例如运行 App C# 控制台应用程序时,我再次执行 index.js 文件创建新进程:

var process = new Process
            {
                StartInfo = new ProcessStartInfo
                {
                    RedirectStandardError = true,
                    FileName = "cmd.exe",
                    Arguments = $"/C {PathToCommand} {command} {arguments}",
                    WindowStyle = ProcessWindowStyle.Hidden,
                    RedirectStandardOutput = true,
                    UseShellExecute = false,
                    CreateNoWindow = true
                }
            };

主进程将冻结......我现在不知道为什么,我分离所有子进程......也许是新进程如何从 C# 应用程序执行,结果子进程无法与父进程分离...... ..我现在不...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    相关资源
    最近更新 更多