Azure WebJobs - 在哪里托管?它们作为长时间运行的进程安全吗?

2024-01-18

From Azure 网站始终在线 https://stackoverflow.com/questions/26578934/azure-website-always-on and Azure 网站上“始终开启”设置的含义 https://stackoverflow.com/questions/25545677/meaning-of-always-on-setting-on-azure-web-site我假设 Azure WebJobs 托管在 IIS 中并使用 IIS 资源(这是我们的网站资源)。

此外,在定价页面中:http://azure.microsoft.com/en-us/pricing/details/websites/ http://azure.microsoft.com/en-us/pricing/details/websites/有一个说法:

按需、按计划运行自定义可执行文件和/或脚本,或者 持续作为网站实例中的后台任务。 连续执行 Web 作业需要始终开启。天蓝色 计划的 Web 作业需要 Scheduler Free 或 Standard。

因此我认为这是真的。事实上,Azure WebJobs 托管在 Azure 网站的 IIS 中。注意:WebJobs 可以连续且长时间运行。

然而,让我担心的是,执行长时间运行的进程/后台进程通常被视为反模式:

  • 我可以使用线程在 IIS 上执行长时间运行的作业吗? https://stackoverflow.com/questions/536681/can-i-use-threads-to-carry-out-long-running-jobs-on-iis
  • 对 IIS 上长时间运行的进程的担忧 https://stackoverflow.com/questions/13746411/concerns-with-long-running-process-on-iis
  • ASP.NET 长时间运行的任务。线程正在中止异常 https://stackoverflow.com/questions/16254567/asp-net-long-running-task-thread-is-being-aborted-exception

那么 Microsoft Azure 是否提出了一些看似反模式的东西?附加问题:将 Quartz.NET 作为连续任务运行并进行“免费”简单的后台任务调度是一个好主意吗?


我将尝试分别解决你的两个问题。

1. WebJobs 托管在哪里?

给定的 WebJob 位于 Web 应用程序(或移动/API 应用程序)内。每个站点都有一个正在运行的 Kudu 实例,它管理部署、IIS 以及对我们来说很重要的 WebJobs 等内容。因此它托管在 Web 应用程序中,但不一定由 IIS 管理,它由管理 Web 应用程序 IIS 的同一事物管理。所有这些都可供您在Kudu GitHub https://github.com/projectkudu/kudu.

2. 它们作为长时间运行的进程安全吗?

它们与任何长时间运行的进程一样安全,因为它们不是单独运行的。如果您只是将控制台应用程序作为连续作业上传并使其在 while 循环中运行,则它可能会因任何原因随时崩溃。通过“Always On”,Kudu 将始终保持清醒状态并重新启动。

如果您想要一定程度的保证事情会被执行并且不会丢失,请尝试查看网络作业SDK https://github.com/Azure/azure-webjobs-sdk。它实际上会跟踪作业的失败/成功,并使用存储队列来跟踪历史记录,允许重试和正常模式进行处理,例如有毒消息等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure WebJobs - 在哪里托管?它们作为长时间运行的进程安全吗? 的相关文章

随机推荐

  • IE 10 和 11 使固定背景在使用鼠标滚轮滚动时跳跃

    当您在 Windows 8 中滚动鼠标滚轮时 固定的背景图像会疯狂地弹跳 这仅影响 IE 10 和 IE 11 这会影响以下元素position fixed以及 这是一个具有固定背景图像的示例 http www catcubed com t
  • Celery 任务优先级

    我想使用 Celery 管理任务 我想要一个任务队列 并发性为1 并且能够将任务推送到具有不同优先级的队列中 这样优先级较高的任务将抢占其他任务 我将三个任务添加到队列中 如下所示 添加任务 py from tasks import exa
  • 可变长度数组类型的 Sizeof 运算符

    根据参考参数 http en cppreference com w c language sizeof 如果类型为表达 is a 变长数组 type 表达被评估并计算其求值的数组的大小 在运行时 这意味着 如果类型表达是一个VLA类型 那么
  • jsp缓存标签库

    我想缓存 JSP 页面的某些部分 因为渲染起来很繁重 整个页面无法缓存 因为它包含用户特定的内容 但大部分页面可以 我认为最好的解决方案是创建一个 JSP 缓存标记 似乎有几种解决方案 但大多数项目都已死亡或被放弃 http www ope
  • 如何使用 FosRestBundle 公开函数结果?

    我正在使用 Symfony2 和 FosRestBundle 为我们的系统开发 REST API FosRestBundle 是一个非常好的工具 但它似乎有一个限制 只有属性 私有 受保护和公共 可以暴露给 API 我想公开一个基于其他两个
  • 在 Python 中将 UTF-8 转换为字符串文字

    我有一个 UTF 8 格式的字符串 但不太确定如何将此字符串转换为其相应的字符文字 例如我有字符串 我的字符串是 Entre xc3 xa9 示例一 这段代码 u Entre xc3 xa9 encode latin 1 decode ut
  • Tkinter 复选框/组合框下拉列表

    我正在尝试用 Python 创建一个后处理数据应用程序 并使用 Tkinter 为其设计 GUI 我不知道 Tkinter 是否支持由复选框组成的下拉列表 然后您可以从中选择多个框 下图反映了我试图描述的内容 这可能吗 这并不完全是您想要的
  • .NET 中的视频会议

    我正在向我们的一款软件添加聊天功能 我已经使用 WCF 启动并运行了聊天功能 我正在考虑尝试使用 WCF 再次添加视频聊天功能 基本上我将发送视频流 而不是发送客户端消息 我想知道是否有人用 WCF 做过这个 是否非常推荐使用 WCF 来执
  • 有没有办法在 Perl 中使用“常量”作为哈希键?

    有没有办法使用常量作为哈希键 例如 use constant X gt 1 my x X gt X 上面的代码将创建一个以 X 作为键而不是 1 作为键的哈希 然而 我想使用常量 X 的值作为键 use constant实际上制作了常量子程
  • Ruby Openid 连接库与客户端消费示例

    我正在寻找 ruby openid connect 客户端库以及使用它的直接代码示例 我找到了一个图书馆here https github com nov openid connect它的示例基于 Rails 但我对 Rails 不太熟悉
  • 为什么linux在内核代码持有自旋锁后禁用内核抢占?

    我是 Linux 新手 正在阅读 Rubini Corbet 撰写的 Linux 设备驱动程序书籍 我对与以下相关的一项声明感到困惑spinlocks 书中指出 如果非抢占式单处理器系统曾经进入 旋转一把锁 它会永远旋转 没有其他线程能够获
  • Java字符串搜索忽略重音符号

    我正在尝试为我的应用程序编写一个过滤函数 该函数将采用输入字符串并过滤掉以某种方式与给定输入不匹配的所有对象 最简单的方法是使用 String 的 contains 方法 即仅检查对象 对象中的 String 变量 是否包含过滤器中指定的字
  • 在 WHERE 子句中使用 mysql concat() ?

    我想搜索我的表 其中包含一列名字和一列姓氏 我目前接受一个字段中的搜索词 并将其与两列进行比较 一次一个 select from table where first name like search term or last name li
  • 有没有检查 CLS 合规性的工具?

    有没有一个工具可以分析我的 NET 代码 C 和VB NET http en wikipedia org wiki Visual Basic NET 然后告诉我why东西不符合 CLS Visual Studio 很高兴地告诉我一个参数不符
  • 如何只为 pandas 中数据帧的某些列绘制直方图

    这是我拥有的数据 在此输入图像描述 https i stack imgur com EwuSA png 假设我有一个名为 df 的变量中的数据框 如果我执行 df hist 它将为数据框中的每个类别显示一个直方图 但我只想为从类别 1 到类
  • 从 docker-compose 中退出代码打破 while 循环

    我有一个案例 有一个 WordPress 项目 我应该在其中创建一个脚本来更新插件并将源代码更改提交到单独的分支 在这样做时我遇到了一个奇怪的问题 输入变量 akimset 4 0 3 all in one wp migration 6 7
  • 在一条消息 MQTT 中发布多个主题

    我有一个设备可以从不同的传感器收集大量数据 我想通过一条消息将它们发送给我的经纪人 在客户端 我只想在给定时间查看其中一些数据 我不想看到全部数据 我可以在一条消息中发布多个主题 然后在客户端只能看到其中的一些主题吗 我知道我可以使用通配符
  • 如何在打印事件上触发javascript?

    当用户打印页面时是否可以触发javascript事件 当用户选择打印页面时 我想删除对 j avascript 库的依赖 因为该库非常适合屏幕但不适合打印 知道如何实现这一目标吗 对于任何从谷歌偶然发现这个答案的人 让我尝试澄清一下 正如
  • Couchbase/N1QL:从参数提供的值列表中选择

    作为后续从集合中按 类别 获取顶部行 https stackoverflow com questions 72447539 get top rows by category from a collection我仍然想获取每个类别 ID 的前
  • Azure WebJobs - 在哪里托管?它们作为长时间运行的进程安全吗?

    From Azure 网站始终在线 https stackoverflow com questions 26578934 azure website always on and Azure 网站上 始终开启 设置的含义 https stac