当前位置: 首页 > news >正文

Hangfire.Pro 3.0 Crack

Hangfire.Pro 有限的存储支持

Hangfire Pro 是一组扩展包,允许使用批处理创建复杂的后台作业工作流程,并提供对超快速Redis作为作业存储的支持


请注意,仅在使用Hangfire.SqlServer、Hangfire.Pro.Redis或Hangfire.InMemory包作为作业存储时才正式支持 Hangfire.Pro 包。我们不能保证批次能够与其他存储正常工作,因为处理保证在很大程度上取决于具体的存储实现。

原子背景创造就业机会
批处理允许您自动创建一堆后台作业。这意味着如果在创建后台作业期间出现异常,则不会处理任何作业。假设您想向客户发送 1000 封电子邮件,而他们确实希望收到这些电子邮件。这是老方法:

for ( var i = 0; i < 1000; i++)
{
    后台作业.Enqueue(() => SendEmail(i));
    // 遇到异常该怎么办?
}
但是,如果 上的存储不可用怎么办i == 500?可能已经发送了 500 封电子邮件,因为工作线程一旦创建就会拾取并处理作业。如果您重新执行此代码,您的某些客户端可能会收到烦人的重复内容。因此,如果您想正确处理此问题,您应该编写更多代码来跟踪发送了哪些电子邮件。

但这里有一个更简单的方法:

需要配置
在使用批量之前,请调用文档GlobalConfiguration.Configuration.UseBatches中编写的方法。

批处理作业.StartNew(x =>
{
    for ( var i = 0; i < 1000; i++)
    {
        x.Enqueue(() => SendEmail(i));
    }
});
如果出现异常,您可能会向用户显示错误,并简单地要求在几分钟后重试她的操作。无需其他代码!

链接批次
延续允许您将多个批次链接在一起。一旦父批次的所有后台作业完成,它们将被执行。考虑前面的示例,您有 1000 封电子邮件要发送。如果您想在发送后进行最终操作,只需添加一个延续:

var id1 = BatchJob .StartNew( /* for (var i = 0; i < 1000... */ );
 var id2 = BatchJob .ContinueBatchWith(id1, x =>
{
    x.Enqueue(() => MarkCampaignFinished());
    x.Enqueue(() => NotifyAdministrator());
});
因此,批次和批次延续允许您定义工作流程并配置将并行执行的操作。这对于繁重的计算方法非常有用,因为它们可以分布到不同的机器上。

复杂的工作流程
创建操作并不限制您只能创建处于排队状态的作业。您可以安排作业稍后执行、添加延续、将延续添加到延续等。

var batchId = BatchJob .StartNew(x =>
{
    x.Enqueue(() => Console .Write( "1a... " ));
    var id1 = x.Schedule(() => Console .Write( "1b... " ), TimeSpan .FromSeconds(1));
    var id2 = x.ContinueJobWith(id1, () => Console .Write( "2... " ));
    x.ContinueJobWith(id2, () => Console .Write( "3... " ));
});

BatchJob .ContinueBatchWith(batchId, x =>
{
    x.Enqueue(() => Console .WriteLine( "4..." ));
});
Hangfire.Pro.Redis
后台作业吞吐量

Hangfire Pro 附带的Hangfire.Pro.Redis软件包使用Redis服务器来保存后台作业和其他数据。

Redis 以其出色的性能而闻名,以下是 Hangfire.SqlServer 和 Hangfire.Redis 存储之间的相对比较结果。

Hangfire.Pro.性能计数器
性能监视器

Hangfire.Pro.PerformanceCounters软件包允许 Hangfire 将其内部指标发布到 Windows 性能计数器——这是监视 Windows 应用程序和服务的标准方法。

因此,您可以使用Nagios、New Relic、Server Density等现有工具来主动监控服务的运行状况。

http://www.lryc.cn/news/234025.html

相关文章:

  • axios的使用,cancelToken取消请求
  • Rockdb简介
  • 【MyBatis】写了 10 年的代码,我最怕写 MyBatis 这些配置,现在有详解了
  • 全球地表水数据集JRC Global Surface Water Mapping Layers v1.4
  • Spring过滤器和拦截器的区别
  • HIS医疗项目
  • eclipse启动无法找到类(自定义监听器)
  • Ubuntu openssh-server 离线安装
  • servlet页面以及控制台输出中文乱码
  • 《向量数据库指南》——TruLens + Milvus Cloud构建RAG深入了解性能
  • vscode代码上传到gitlab
  • Spring Boot 项目的常用注解与依赖
  • 【C++11】多线程库 {thread线程库,mutex互斥锁库,condition_variable条件变量库,atomic原子操作库}
  • 智能导诊系统:基于机器学习和自然语言处理技术,可快速推荐合适的科室和医生
  • 如何防止图片抖动
  • 依赖注入方式
  • HTML 超链接 a 标签
  • 【cpolar】Ubuntu本地快速搭建web小游戏网站,公网用户远程访问
  • 数字化企业需要什么样的数据中心
  • el-table固定表头(设置height)出现内容过多时不能滚动问题
  • 从流程优化到经营提效,法大大电子签全面助力智慧零售升级
  • Jquery 通过class名称属性,匹配元素
  • 复杂数据统计与R语言程序设计实验二
  • python3:print()打印. 2023-11-18
  • ARM 版 Kylin V10 部署 KubeSphere 3.4.0 不完全指南
  • 二元分类模型评估方法
  • 专业数据标注公司:景联文科技领航数据标注行业,满足大模型时代新需求
  • .Net8 Blazor 尝鲜
  • Vue.js 页面加载时触发函数
  • Go 语言常用数据结构