首页 > 其他分享 >hangfire filter实现

hangfire filter实现

时间:2024-10-26 15:12:22浏览次数:5  
标签:Console 实现 void hangfire filter OnCreated OnCreating public

internal class Program
{
    static async Task Main(string[] args)
    {
        var filters = new List<IFilter>
        {
            new FilterA(),
            new FilterB(),
        };

        Func<BackgroundJob> continuation = () =>
        {
            return new BackgroundJob();
        };

        filters.Reverse();
        var thunk = filters.Aggregate(continuation, 
            (next, filter) => () => InvokeClientFilter(filter, next));

        thunk();
    }

    private static BackgroundJob InvokeClientFilter(IFilter filter, Func<BackgroundJob> next)
    {
        filter.OnCreating();
        var backgroungJob = next();
        filter.OnCreated();
        return backgroungJob;
    }
}

public class FilterA : IFilter
{
    public void OnCreated()
    {
        Console.WriteLine("FilterA: OnCreated");
    }

    public void OnCreating()
    {
        Console.WriteLine("FilterA: OnCreating");
    }
}

public interface IFilter
{
    void OnCreating();
    void OnCreated();
}

public class FilterB : IFilter
{
    public void OnCreated()
    {
        Console.WriteLine("FilterB: OnCreated");
    }

    public void OnCreating()
    {
        Console.WriteLine("FilterB: OnCreating");
    }
}

public class BackgroundJob
{

}

标签:Console,实现,void,hangfire,filter,OnCreated,OnCreating,public
From: https://www.cnblogs.com/readafterme/p/18504092

相关文章

  • 基于AIACC加速器快速实现LLaMA-7B指令微调
    本文基于Alpaca提供了一套LLaMA-7B模型在阿里云ECS上进行指令微调的训练方案,最终可以获得性能更贴近具体使用场景的语言模型。背景信息LLaMA(LargeLanguageModelMetaAI )是MetaAI在2023年2月发布的开放使用预训练语言模型(LargeLanguageModel,LLM),其参数量包含7B到65B的......
  • 实现阿里云短信服务
    导入依赖<!--阿里云短信服务依赖--><dependency><groupId>com.aliyun</groupId><artifactId>dysmsapi20170525</artifactId><version>3.0.0</version></dependen......
  • 集成平台实现MySQL与金蝶云星空的数据对接
    MySQL数据集成到金蝶云星空:SR生产入库单新增-单工序-深圳天一-好在企业信息化系统中,数据的高效流转和准确对接是确保业务顺畅运行的关键。本文将分享一个实际案例,展示如何通过数据集成平台,将MySQL中的数据无缝集成到金蝶云星空,实现SR生产入库单新增的自动化处理。本次案例的核......
  • 如何实现SQLServer与金蝶云星空的数据高效集成
    SQLServer数据集成到金蝶云星空:泛微项目=>金蝶辅助资料项目在企业信息化系统中,数据的高效流转和准确对接至关重要。本文将分享一个SQLServer数据集成到金蝶云星空的实际案例——泛微项目=>金蝶辅助资料项目。通过这一案例,我们将探讨如何利用轻易云数据集成平台,实现从SQLServe......
  • HarmonyOS:Node-API实现跨语言交互(3)使用Node-API实现跨语言交互开发流程
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/18504008➤如果链接不是为敢技术的博客园地址,则可能是......
  • HarmonyOS:Node-API实现跨语言交互(2)Node-API支持的数据类型和接口
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/18502733➤如果链接不是为敢技术的博客园地址,则可能是......
  • 初阶数据结构之顺序表的实现
    1线性表什么是线性表呢?线性表是n个具有相同特性的数据元素的有限序列。常见的线性表:顺序表,链表,栈,队列,字符串。线性表在逻辑上是线性结构,在物理结构上不一定是线性的。线性表在物理存储时,通常是以数组或链式结构形式存储。线性表大致分为两种:顺序表和链表。基于这两种......
  • 配置WSL2实现与宿主机的网络互通
    前言 WSL1是基于代理的虚拟化技术,它通过将Linux系统调用转换为Windows系统调用来实现与Windows内核的交互。WSL2则使用了真正的虚拟机技术,它在Windows主机上运行一个轻量级的Linux内核。WSL2无法访问Windows的localhost网络是由WSL2的网络架构所致。WSL2......
  • 厨艺交流平台:Spring Boot技术实现细节
    6系统测试为了保证所开发出来的系统质量过关,让所开发出来的系统具备可靠性并能够投入运行使用,这就需要进行系统开发的最后一个关键步骤,那就是系统测试。可以说系统测试就是对系统开发前面的步骤,比如系统分析与设计等进行复查。尽管在程序开发期间,人们一直很注意避免系统出......
  • java计算机毕业设计打车平台的设计与实现(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着移动互联网技术的飞速发展,人们的出行方式发生了巨大的变革。传统的出租车行业面临着诸多问题,如司机绕路、拒载等现象频繁发生,打车难、打车贵......