.Net Core 2.0中的Hangfire计划作业

时间:2018-06-02 14:04:31

标签: asp.net-core-2.0 hangfire hangfire-autofac hangfire-mongodb

我在Hangfire.Pro中使用.Net Core 2.0来执行后台计划作业。我在调用实例方法之前使用JobActivator类来实例化目标类型。我使用了MongoDB存储实现,如下所示。

var options = new BackgroundJobServerOptions
        {
            ServerName = "Test Server",
            SchedulePollingInterval = TimeSpan.FromSeconds(30),
            Queues = new[] { "critical", "default", "low" },
            Activator = new AutofacJobActivator(container),
        };

        var jobStorage = new MongoStorage("mongodb://localhost:2XXXX", "TEST_DB_NAME", new MongoStorageOptions()
        {
            QueuePollInterval = TimeSpan.FromSeconds(30)
        });

我覆盖了方法BeginScope,如下所示。

public override JobActivatorScope BeginScope(JobActivatorContext context)
    {

        return new AutofacScope(_UseTaggedLifetimeScope
                                    ? _LifetimeScope.BeginLifetimeScope(LifetimeScopeTag)
                                    : _LifetimeScope.BeginLifetimeScope()); // Run time Error at this line
    }

我在这个BeginScope方法中遇到了以下错误。

  

System.ObjectDisposedException:'无法解析实例,并且无法从此LifetimeScope创建嵌套生命周期,因为它已经被处理掉了。'

任何人都可以提出解决此问题的建议或解决方案吗?

任何帮助都将受到高度赞赏。

谢谢

0 个答案:

没有答案