具有永远循环的后台作业的Web应用程序

时间:2017-09-15 03:29:05

标签: .net-core application-design web-application-design

我正在尝试设计一个新的应用程序,但我有点坚持最好的方法。

我想要做的是将一个机器人连接到irc频道,该频道从聊天消息中收集信息,然后我想拥有一个HTTP端点,我可以从中获取迄今为止收集的信息的结果。

我有一个机器人运行,收集我想要的信息,我可以创建端点,但我如何将其构建到一个应用程序?我有2个申请吗? 1输出到文件,端点只读取文件并输出?我更喜欢它在一个应用程序中,但到目前为止还没有找到这样的解决方案。

我目前正在使用DotNet核心2.0并部署到Raspberry Pi。

1 个答案:

答案 0 :(得分:0)

这取决于工作量。 如果应用程序收集信息定期执行并且不做任何其他时间,我建议将其作为ASP.NET服务启动:

public static void Main(string[] args)
{
    var host = new WebHostBuilder()
        .UseKestrel()
        .UseContentRoot(Directory.GetCurrentDirectory())
        .UseIISIntegration()
        .UseStartup<Startup>()
        .Build();
    host.Run();
}

为您当前的控制台应用程序安装所有依赖项(这将起作用)。 要收集数据,您可以使用 HangFire 。它库来运行后台作业。 要运行后台作业reccurence注册工作,请执行以下操作:

RecurringJob.AddOrUpdate(
    () => { //Gather data here },
    Cron.Daily);