.NET核心后台任务

时间:2017-09-19 14:24:40

标签: .net multithreading thread-safety .net-core background-process

案例

我正在构建REST API,它应该在尽可能短的时间内响应,也应该尽快做一些后台工作。后台工作最多可能需要10秒,但对于API响应时间要求来说太多了。

它是.NET Core,在Azure应用服务中的Docker(linux)中运行。

我不想使用Hangfire或Quartz.NET,它太重了。

所以我决定做这样的事情

public async Task<bool> ReceiveAction(string id)
    {
        // do some async stuffs

        #pragma warning disable 4014
        Task.Factory.StartNew(async () => { await DoWork(); }, TaskCreationOptions.RunContinuationsAsynchronously);
        #pragma warning restore 4014

        return true;
    }

问题

安全吗?

这是好的做法吗?

如果没有,我该怎么办?

0 个答案:

没有答案