【问题标题】:Hangfire background job mysteriously stops runningHangfire 后台作业神秘地停止运行
【发布时间】:2017-10-17 01:06:49
【问题描述】:

我对 Hangfire 1.4.3.0(WebAPI、SQL 服务器存储)有一个奇怪的问题 - 作业开始后正好 30 分钟后,hangfire 重新启动它并分配一个新的工作人员。跟踪级别的默认 hangfire 日志记录没有显示任何有用的信息。在我的网络应用程序日志中,我只能看到作业已启动,hangfire 数据库中的状态表显示分配了新的工作人员:

Id  JobId   Name    Reason  CreatedAt   Data
27  8   Processing  NULL    2017-05-17 10:34:51.640 {"StartedAt":"2017-05-17T10:34:51.6389278Z","ServerId":"mypc:3332","WorkerNumber":"22"}
28  8   Processing  NULL    2017-05-17 11:04:51.683 {"StartedAt":"2017-05-17T11:04:51.6819303Z","ServerId":"mypc:3332","WorkerNumber":"14"}

但是以前的工人怎么了?如何找出它停止的原因?

【问题讨论】:

    标签: c# asp.net-web-api background-process jobs hangfire


    【解决方案1】:

    在谷歌上搜索了很多相同的问题后,我从下面的链接中得到了解决方案,其中提到了一些对于连续运行你的工作非常重要的配置部分。

    http://docs.hangfire.io/en/latest/deployment-to-production/making-aspnet-app-always-running.html

    -----下面是你必须在全局applicationHost.config文件(%WINDIR%\System32\inetsrv\config\applicationHost.config)中做的配置。

    <applicationPools>
        <add name="MyAppWorkerProcess" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" />
    </applicationPools>
    
    <!-- ... -->
    
    <sites>
        <site name="MySite" id="1">
            <application path="/" serviceAutoStartEnabled="true"
                                  serviceAutoStartProvider="ApplicationPreload" />
        </site>
    </sites>
    
    <!-- Just AFTER closing the `sites` element AND AFTER `webLimits` tag -->
    <serviceAutoStartProviders>
        <add name="ApplicationPreload" type="WebApplication1.ApplicationPreload, WebApplication1" />
    </serviceAutoStartProviders>
    

    【讨论】:

    【解决方案2】:

    显然这是已知的错误:https://github.com/HangfireIO/Hangfire/issues/514

    Hangfire 当前版本为 1.6.12 - 您是否尝试过更新到最新版本并检查是否仍然存在问题?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-05
      • 2014-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多