我目前正在使用绞刑来执行队列作业。传统的行刑作业排队方式是使用这样的方法:
 BackgroundJob.Enqueue(() => DoWork());然后将实习生队列并在“默认”hangfire队列中执行此作业。
但是,我可以向该方法添加一个属性,该属性将用于确定将其放入和执行的队列:
    [Queue("SECONDARY")]
    public void DoWork()
    {
    }我的问题:是否有一种方法可以使用上面提到的方法属性动态/以编程方式在指定的队列中对挂起的作业进行排队?
发布于 2018-09-17 06:13:19
这是你的一些伪码。
class Program
{
    static void Main(string[] args)
    {
        EnqueuedState queue = new EnqueuedState("myQueueName");
        new BackgroundJobClient().Create<Program>(c => c.DoWork(), queue);
    }
    public void DoWork()
    {
    }
}我知道的另一个选项是使用接口并间接地使用属性。见下面的伪代码:
 {
     interface IHangfireJob
     {
         [Queue("secondary")]
         void Execute();
     }
 }
 class Program : IHangfireJob
 {
     static void SomeMainMethod()
     {
        BackgroundJob.Enqueue(() => Execute());
     }
     public void Execute()
     {
        Console.WriteLine("Fire-and-forget!");
     }
 }https://stackoverflow.com/questions/52348216
复制相似问题