【问题标题】:Access file system in Service Fabric访问 Service Fabric 中的文件系统
【发布时间】:2016-06-22 10:19:30
【问题描述】:

当我收到来自服务总线队列的新消息时,我需要在 Service Fabric 服务中使用 ffmpeg 对视频进行编码。我可以从资源中提取 ffmpeg.exe 并运行它,但我可以将输入/输出视频文件保存在内部文件系统中吗?

【问题讨论】:

    标签: azure azure-service-fabric


    【解决方案1】:

    我通过以下代码在本地集群上对其进行了测试:

        protected override async Task RunAsync(CancellationToken cancellationToken)
        {
            while (true)
            {
                cancellationToken.ThrowIfCancellationRequested();
    
                string filename = "testFile.txt";
                File.AppendAllText(filename, "test. ");
    
                string content = File.ReadAllText(filename);
                System.Diagnostics.Trace.WriteLine("Content:" + content);
                System.Diagnostics.Trace.WriteLine(new FileInfo(filename).FullName);
    
                await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken);
            }
        }
    

    结果输出为:

    Content:test. 
    C:\SfDevCluster\Data\_App\_Node_3\SampleAppType_App51\work\testFile.txt
    Content:test. test. 
    C:\SfDevCluster\Data\_App\_Node_3\SampleAppType_App51\work\testFile.txt
    Content:test. test. test. 
    C:\SfDevCluster\Data\_App\_Node_3\SampleAppType_App51\work\testFile.txt
    

    但路径在下次运行时更改为 C:\SfDevCluster\Data_App_Node_3\SampleAppType_App52\work\testFile.txt。

    所以我想答案是:

    可以使用本地文件系统,但只能用于临时文件。而且我认为在迭代结束时清理系统是一个很好的做法。

    【讨论】:

    • 你的结论是正确的。临时本地文件存储尽可能使用本地文件系统,因为服务不绑定到任何特定的 VM 实例。
    猜你喜欢
    • 2018-11-24
    • 2021-07-27
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    相关资源
    最近更新 更多