当 IIS 应用程序池可能空闲时,如何允许作业 运行 下班后?
How to allow jobs to run after-hours when IIS app pool may be idle?
我正在尝试将 hangfire 与 .net 核心网络应用程序结合使用。这些例子看起来很简单,但是我有疑问。
如果我想 运行 按 cron 计划执行作业,即使 iis 应用程序池处于休眠状态,我是否应该考虑将 hangfire 服务器置于 windows 服务中?
如果在 Web 应用程序中同时使用服务器和客户端,文档提到修改根 .net 配置文件以允许您的应用程序始终 运行ning。
http://docs.hangfire.io/en/latest/deployment-to-production/making-aspnet-app-always-running.html
为什么不能直接将应用程序池超时设置为 0?
另一种选择是将 hangfire 服务器作为 windows 服务项目的一部分。如果不是真的需要,我宁愿不弄乱 windows 服务。这需要 运行 计划作业(通过 cron 计划)执行,即使没有用户向应用程序发出请求以防止应用程序池进入休眠状态。设置应用程序池空闲超时应该做同样的事情不是吗?
你应该永远不要期望一个网站运行像这样的扩展工作。它们旨在 运行 快速(大概)调用和操作以及 return 结果。建议使用 Windows 服务。一旦你开始搞乱应用程序池超时等,你就是在自找麻烦。
随着 Net Core 2.2 的发布,我现在可以修改这个答案了。 MS 添加了 "Background Task" 服务,该服务允许在服务器处于活动状态时 运行 在服务器上发送内容:
我正在尝试将 hangfire 与 .net 核心网络应用程序结合使用。这些例子看起来很简单,但是我有疑问。
如果我想 运行 按 cron 计划执行作业,即使 iis 应用程序池处于休眠状态,我是否应该考虑将 hangfire 服务器置于 windows 服务中?
如果在 Web 应用程序中同时使用服务器和客户端,文档提到修改根 .net 配置文件以允许您的应用程序始终 运行ning。 http://docs.hangfire.io/en/latest/deployment-to-production/making-aspnet-app-always-running.html
为什么不能直接将应用程序池超时设置为 0?
另一种选择是将 hangfire 服务器作为 windows 服务项目的一部分。如果不是真的需要,我宁愿不弄乱 windows 服务。这需要 运行 计划作业(通过 cron 计划)执行,即使没有用户向应用程序发出请求以防止应用程序池进入休眠状态。设置应用程序池空闲超时应该做同样的事情不是吗?
你应该永远不要期望一个网站运行像这样的扩展工作。它们旨在 运行 快速(大概)调用和操作以及 return 结果。建议使用 Windows 服务。一旦你开始搞乱应用程序池超时等,你就是在自找麻烦。
随着 Net Core 2.2 的发布,我现在可以修改这个答案了。 MS 添加了 "Background Task" 服务,该服务允许在服务器处于活动状态时 运行 在服务器上发送内容: