【问题标题】:Hangfire implemetation挂火实施
【发布时间】:2016-05-09 16:42:29
【问题描述】:

我是hangfire的新手,正在寻找可以解决以下情况的解决方案

  1. 从数据库中获取数据并将其转换为 CSV 文件。这应该在用户插入新记录时发生,如果插入了新记录,hangfire 应该在一天结束时触发。
  2. 我们可以在本地机器上部署hangfire并进行测试

【问题讨论】:

    标签: model-view-controller asp.net-mvc-5 hangfire


    【解决方案1】:

    从数据库中获取数据并将其转换为 CSV 文件

    您可以使用 hangfire 在应用程序中的任何类上运行任何公共方法。所以如果你写了一个方法来做你想做的事,那么hangfire可以调用那个方法:

    BackgroundJob.Enqueue<IUserRecordProcessor>(x => x.ProcessRecord());
    

    如果插入了新记录,hangfire 应该在一天结束时触发

    您可以安排hangfire 执行循环任务(请参阅here)。但是,此执行不是有条件的。相反,您应该将条件逻辑移动到 hangfire 调用的代码中:

    RecurringJob.AddOrUpdate<IUserRecordProcessor>(x => x.ProcessRecordIfOneExists(), Cron.Daily);
    

    我们可以在本地机器上部署hangfire并进行测试

    是的,你可以。

    【讨论】:

    • 如果服务器重启或者池应用重启怎么办?
    • @Daniel - 尽管 hangfire 在 IIS 工作进程内的内存中运行,但它提供了持久的作业执行。基本上,如果服务器/应用程序池重新启动,则正在进行的作业将在应用程序再次可用时重新启动。您可以在文档中阅读更多相关信息:docs.hangfire.io/en/latest
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    • 2022-07-16
    相关资源
    最近更新 更多