首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将挂起作业发送到特定队列

将挂起作业发送到特定队列
EN

Stack Overflow用户
提问于 2018-09-15 19:38:12
回答 1查看 2.8K关注 0票数 1

我目前正在使用绞刑来执行队列作业。传统的行刑作业排队方式是使用这样的方法:

代码语言:javascript
运行
复制
 BackgroundJob.Enqueue(() => DoWork());

然后将实习生队列并在“默认”hangfire队列中执行此作业。

但是,我可以向该方法添加一个属性,该属性将用于确定将其放入和执行的队列:

代码语言:javascript
运行
复制
    [Queue("SECONDARY")]
    public void DoWork()
    {

    }

我的问题:是否有一种方法可以使用上面提到的方法属性动态/以编程方式在指定的队列中对挂起的作业进行排队?

EN

回答 1

Stack Overflow用户

发布于 2018-09-17 06:13:19

这是你的一些伪码。

Create.htm

代码语言:javascript
运行
复制
class Program
{
    static void Main(string[] args)
    {
        EnqueuedState queue = new EnqueuedState("myQueueName");
        new BackgroundJobClient().Create<Program>(c => c.DoWork(), queue);
    }

    public void DoWork()
    {

    }
}

我知道的另一个选项是使用接口并间接地使用属性。见下面的伪代码:

代码语言:javascript
运行
复制
 {
     interface IHangfireJob
     {
         [Queue("secondary")]
         void Execute();
     }
 }

 class Program : IHangfireJob
 {
     static void SomeMainMethod()
     {
        BackgroundJob.Enqueue(() => Execute());
     }

     public void Execute()
     {
        Console.WriteLine("Fire-and-forget!");
     }
 }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52348216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档